Notice
Recent Posts
Recent Comments
Link
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Archives
Today
Total
관리 메뉴

브이로그

2024년 6월 4일 Python-Chat GPT 본문

Python

2024년 6월 4일 Python-Chat GPT

황수환 2024. 6. 5. 02:51
더보기

chatGPT
- OpenAI가 개발한 자연어 처리 모델로, 인간과 유사한 방식으로 대화를 나눌 수 있는 인공지능 시스템
- GPT(Generative Pre-trained Transformer) 아키텍처를 기반으로 현재는 GPT-4  버전을 사용
- 기본적으로 영어로 세팅 -> 다국어를 이용 시 영어에 비해 느리고 정보량이 부족
- 상황을 구체적으로 기술할수록 좋은 결과를 기대할 수 있음
    - streamlit에 대해 설명해줘(x)
    - 나는 AI개발자야. 직원을 교육하고 있는데, streamlit에 대해 개념을 설명하려고 해. 해당 자료를 만들어줘
- chatGPT에게 역할을 부여할수록 좋은 결과를 기대할 수 있음
    - 신입사원에게 질문할 문항을 만들어줘(x)
    - 너는 스타트업 개발팀장이야. 팀장처럼 행동해줘. 니가 질문을 하면 내가 대답을할께. 첫 번째 질문을 만들어줘.

chatGPT API 사용하기
https://platform.openai.com/

1. Chat GPT

import streamlit as st
import openai

openai.api_key = "sk-proj-PmRvCaAcuideySHtWbPkT3BlbkFJsTIheSp8uu6ACcSJqgtl"

example = {
    "한국어": ["오늘 날씨 어때?", "딥러닝 기반의 AI기술이 인기를 끌고 있다"],
    "영어": ["How is the weather today?", "AI technology based on deep learning is gaining popularity"],
    "일본어": ["今日の天気はどう?", "ディープラーニングベースのAI技術が人気を集めている"]
}

def translate_text_chatgpt(text, src_lang, trg_lang):
    def build_fewshot(src_lang, trg_lang):
        src_examples = example[src_lang]
        trg_examples = example[trg_lang]

        fewshot_messages = []

        for src_text, trg_text in zip(src_examples, trg_examples):
            fewshot_messages.append({"role": "user", "content": src_text})
            fewshot_messages.append({"role": "assistant", "content": trg_text})
        return fewshot_messages

    system_instruction = f"assiatant는 번역앱으로서 동작한다. {src_lang}을 {trg_lang}으로 적절하게 번역하고 번역된 텍스트만 출력한다."
    fewshot_messages = build_fewshot(src_lang=src_lang, trg_lang=trg_lang)

    messages = [{"role":"system", "content": system_instruction}, *fewshot_messages, {"role": "user", "content": text}]
    # print(messages)

    response = openai.chat.completions.create(
        model="gpt-3.5-turbo", messages=messages
    )
    # print(response)
    # print(response.choices[0].message.content)
    return response.choices[0].message.content

st.title("초간단 번역 서비스앱")
text = st.text_area("번역할 내용을 입력하세요", "")
src_lang = st.selectbox("번역할 언어를 선택하세요", ["한국어", "영어", "일본어"])
trg_lang = st.selectbox("번역될 언어를 선택하세요", ["영어", "한국어", "일본어"])

if st.button("번역하기"):
    translated_text = translate_text_chatgpt(text, src_lang, trg_lang)
    st.success(translated_text)

'Python' 카테고리의 다른 글

2024년 6월 10일 Python-Machine Learning  (0) 2024.06.18
2024년 6월 5일 Python-Cf  (1) 2024.06.06
2024년 6월 4일 Python-Fast API  (0) 2024.06.05
2024년 6월 3일 Python-Seoul Bike API  (0) 2024.06.05
2024년 5월 28일 Python-Park  (0) 2024.05.29