import openai
import streamlit as st
OPENAI_API_KEY = ''
OPENAI_AZURE_ENDPOINT = ''
OPENAI_API_TYPE = 'azure'
OPENAI_API_VERSION = '2023-05-15'
openai.api_key = OPENAI_API_KEY
openai.azure_endpoint = OPENAI_AZURE_ENDPOINT
openai.api_type = OPENAI_API_TYPE
openai.api_version = OPENAI_API_VERSION
query = st.text_input('Query?: ')
button_result = st.button('RUN')
if button_result:
result = openai.chat.completions.create(
model = 'dev-gpt-35-turbo',
messages=[
{'role':'system', 'content':'You are a helpful assistant.'},
{'role':'user', 'content':query}
]
)
st.write(result.choices[0].message.content)


import openai
import streamlit as st
OPENAI_API_KEY = ''
OPENAI_AZURE_ENDPOINT = ''
OPENAI_API_TYPE = 'azure'
OPENAI_API_VERSION = '2023-05-15'
openai.api_key = OPENAI_API_KEY
openai.azure_endpoint = OPENAI_AZURE_ENDPOINT
openai.api_type = OPENAI_API_TYPE
openai.api_version = OPENAI_API_VERSION
st.header('인공지능 시인 서비스', divider='rainbow')
name = st.text_input('이름을 입력하세요.')
if name:
st.write(name + '님 반갑습니다!')
subject = st.text_input('주제를 입력하세요')
content = st.text_area('시의 내용을 입력하세요')
button_result = st.button('RUN')
if button_result:
result = openai.chat.completions.create(
model = 'dev-gpt-35-turbo',
messages=[
{'role':'system', 'content':'You are a helpful assistant.'},
{'role':'user', 'content':'작가의 이름은 ' + name},
{'role':'user', 'content':'시의 주제는 ' + subject},
{'role':'user', 'content':'시의 내용은 ' + content},
{'role':'user', 'content':'이 내용으로 시를 지어줘'}
]
)
st.write(result.choices[0].message.content)
실행 결과: streamlit run chatgpt-01.py로 실행

ver2. spinner 추가 + 자유도 높게
import openai
import time
import streamlit as st
OPENAI_API_KEY = ''
OPENAI_AZURE_ENDPOINT = ''
OPENAI_API_TYPE = 'azure'
OPENAI_API_VERSION = '2023-05-15'
openai.api_key = OPENAI_API_KEY
openai.azure_endpoint = OPENAI_AZURE_ENDPOINT
openai.api_type = OPENAI_API_TYPE
openai.api_version = OPENAI_API_VERSION
st.header('인공지능 시인 서비스', divider='rainbow')
name = st.text_input('이름을 입력하세요.')
if name:
st.write(name + '님 반갑습니다!')
subject = st.text_input('주제를 입력하세요')
content = st.text_area('시의 내용을 입력하세요')
button_result = st.button('RUN')
if button_result:
with st.spinner('please wait.....'):
result = openai.chat.completions.create(
model = 'dev-gpt-35-turbo',
temperature=1, # 1일수록 자유도 높아짐(F..?)
messages=[
{'role':'system', 'content':'You are a helpful assistant.'},
{'role':'user', 'content':'작가의 이름은 ' + name},
{'role':'user', 'content':'시의 주제는 ' + subject},
{'role':'user', 'content':'시의 내용은 ' + content},
{'role':'user', 'content':'이 내용으로 시를 지어줘'}
]
)
st.write(result.choices[0].message.content)
st.success('done') # spinner 멈춤

repo 만들기: aipoem
cmd 창에서 새로운 폴더 만든 후, 그 디렉토리로 이동 후 git clone

chatgpt-01.py 파일 복사해오기
git status
git add *
git commit -m "Add chatgpt-01.py"
git push
Streamlit에서 deploy
aipoem 폴더에 requirements.txt 만들기
git push

GPT와 같은 대형 언어 모델을 기반으로 한 애플리케이션 개발을 위한 오픈 소스 프레임워크
!pip install openai
!pip install langchain
import os
os.environ['OPENAI_API_KEY'] = ' '
os.environ['AZURE_OPENAI_ENDPOINT'] = ' '
os.environ['OPENAI_API_TYPE'] = 'azure'
os.environ['OPENAI_API_VERSION'] = '2023-05-15'
from langchain.llms import AzureOpenAI
llm = AzureOpenAI(
deployment_name='dev-gpt-35-turbo-instruct'
)
llm.invoke('why python is the most popular language?')
# 위의 코드와 동일한 결과 나옴
from langchain.chat_models import AzureChatOpenAI
chatgpt = AzureChatOpenAI(deployment_name='dev-gpt-35-turbo')
answer = chatgpt.invoke('Why Python is the most popular language?')
print(answer)

from langchain.callbacks.streaming_stdout import StreamingStdOutCallbackHandler
chatgpt = AzureChatOpenAI(
deployment_name='dev-gpt-35-turbo',
temperature=1,
streaming=True,
callbacks=[StreamingStdOutCallbackHandler()]
)
answer = chatgpt.invoke('Why Python is the most popular language? answer the Korean')
from langchain.schema import SystemMessage, AIMessage, HumanMessage
chatgpt = AzureChatOpenAI(deployment_name='dev-gpt-35-turbo', temperature=0)
messages=[
SystemMessage(content='You are a helpful assistant that translates English to Korean'),
HumanMessage(content='I love langchain')
]
answer = chatgpt(messages)
print(answer.content)


from langchain.prompts import PromptTemplate, ChatPromptTemplate
string_prompt = PromptTemplate.from_template('Tell me a joke about {subject}')
string_prompt_value = string_prompt.format_prompt(subject='soccer')
string_prompt_value.text
chat_prompt = ChatPromptTemplate.from_template('Tell me a joke about {subject}')
chat_prompt_value = chat_prompt.format_prompt(subject='soccer')
chat_prompt_value.messages[0].content

from langchain.prompts import(
ChatPromptTemplate,
PromptTemplate,
SystemMessagePromptTemplate,
AIMessagePromptTemplate,
HumanMessagePromptTemplate
)
from langchain.schema import(
SystemMessage,
AIMessage,
HumanMessage
)
# 대화형 탬플릿의 완성
# System Template
system_template_prompt = SystemMessagePromptTemplate.from_template(template)
# Human Template
human_template = '{재료}'
human_message_prompt = HumanMessagePromptTemplate.from_template(human_template)
# Chat Template
chat_prompt = ChatPromptTemplate.from_messages([system_template_prompt,
human_message_prompt])
prompt = chat_prompt.format_prompt(재료='양파,계란,사과,빵').to_messages()
prompt
from langchain.prompts.few_shot import FewShotPromptTemplate
from langchain.prompts import PromptTemplate
examples =[
{
'question':'아이유로 삼행시를 지어줘',
'answer': '''
아 아이유는
이 이상하고
유 유난히 좋다.
'''
},
{
'question':'이순신으로 삼행시를 지어줘',
'answer':'''
이 이순신 장군은
순 순순히 내어줄 것 같았던 조선의 바다를
신 신의와 충의의 마음으로 지켜냈다.
'''
}
]
from langchain.document_loaders import WebBaseLoader
loader = WebBaseLoader('https://www.yonhapnewstv.co.kr/news/MYH20240201006900641')
data = loader.load()
print(data[0].page_content)

# PDF 파일 읽어오기
from langchain.document_loaders import PyPDFLoader
loader = PyPDFLoader('/content/[정책브리프 2021-04] 탄소중립 대응을 위한 정부 정책과 동향 (1).pdf')
pages = loader.load_and_split() # PDF load & split

# Word 문서를 읽어 온다.
from langchain.document_loaders import Docx2txtLoader
loader = Docx2txtLoader('/content/LLM이 만들어 내는 혁명과 교통산업.docx')
data = loader.load()
from langchain.document_loaders import CSVLoader
loader = CSVLoader(
file_path='/content/titanic3.csv', csv_args={
'delimiter':',', # 구분자
'quotechar':'"',
'fieldnames':['pclass','survived','name','sex','age','sibsp','parch','ticket','fare','cabin','embarked','boat','body','home.dest']
}
)
data = loader.load()
from langchain_experimental.agents.agent_toolkits.pandas.base import create_pandas_dataframe_agent
from langchain.agents import AgentType
from langchain.llms import AzureOpenAI
from langchain.llms import AzureOpenAI
completion_llm = AzureOpenAI(deployment_name='dev-gpt-35-turbo-instruct',
temperature=0)
agent = create_pandas_dataframe_agent(completion_llm,
df=df,
agent_type=AgentType.ZERO_SHOT_REACT_DESCRIPTION,
verbose=True)
