728x90
2024.05.28 - [데이터&AI/LLM] - LLM 에이전트(llm agent) 란 무엇일까?- 코드로 알아보기 (feat. prompt engineering)
LLM Agent, function calling, tool 등 GPT를 활용한 다양한 기술들이 개발되고있는데요!!
오늘은 이 function calling 기능을 활용하여
현재시간을 대답하는 GPT를 만들어보고자합니다!!
0. 관련 모듈 및 객체 로딩
필요한 패키지와 llm 객채를 로딩합니다!
import openai
import datetime
client = openai.OpenAI(api_key = '{내key}')
1., 함수 만들기
지금 시간을 알려주는 간단한 함수를 만들어봅니다! 함수명은 time_now 라고합니다!
def time_now():
return datetime.datetime.now().strftime('%Y년%m월%d일 %H시%M분%S초')
2. 함수에 대한 설명자료만들기!!
이 함수가 어떤 함수인지, gpt가 이해할 수 있도록 설명자료를 만듭니다!!
openai에서 제공하는 형식에 맞춰줍니다!
functions = [
{
"name": "time_now",
"description": "현재시각을 알려줍니다.",
"parameters": {
"type": "object",
"properties": {
},
"required": [],
},
}
]
3. gpt호출할때, 함수정보를 함께 넣기!!
> 2에서 진행했던 함수정보를 함께 넣어 GPT를 호출합니다!
def chat(query):
completion = client.chat.completions.create(
model="gpt-3.5-turbo",
messages=[{"role": "user", "content": query}],
functions=functions, ## 요부분!!!!
)
message = completion.choices[0].message
return message
그럼 아래와 같이 질문에 따라 함수를 호출할지 말지 GPT가 정해줍니다!!
4,최종 답변하도록 GPT호출하기!!
time_now = globals()[message_res.function_call.name]()
time_now
if message_res.function_call != None:
price_response = client.chat.completions.create(
model="gpt-3.5-turbo-0613",
messages=[
{"role": "system", "content": "너는 시간을 알려주는 비서야"},
{"role": "system", "content": f"현재시간은 {time_now}입니다"},
{"role": "user", "content":query}
],
)
print(price_response.choices[0].message.content)
else:
print('잘못된 질문입니다. 시간을 물어봐주세요')
이제, 실제 결과를 호출해서 다시 GPT에 보내 답을 구합니다!!
최종결론!!
GPT가 사람의 질문을 받고!!
function 에 해당하는지를 판단하고!@
해당한다면 함수의 결과갑을 가지고 답을합니다!!
이렇게한다면 GPT를 통해서도 시간을 잘 알수있찌요~~
query = "시방 몇시더냐????"
message_res = chat(query)
message_res
if message_res.function_call != None:
price_response = client.chat.completions.create(
model="gpt-3.5-turbo-0613",
messages=[
{"role": "system", "content": "너는 시간을 알려주는 비서야"},
{"role": "system", "content": f"현재시간은 {time_now}입니다"},
{"role": "user", "content":query}
],
)
print(price_response.choices[0].message.content)
else:
print('잘못된 질문입니다. 시간을 물어봐주세요')
감사합니다.
728x90
'데이터&AI > LLM' 카테고리의 다른 글
llama3 의 모델을 api로 호출하기!! (feat. ollama, python, embedding) (0) | 2024.06.01 |
---|---|
내 서버에서 llama3 실행하기!! (feat. ollama) (0) | 2024.05.31 |
LLM 에이전트(llm agent) 란 무엇일까?- 코드로 알아보기 (feat. prompt engineering) (0) | 2024.05.29 |
LangChain 캐싱: GPT비용을 줄이고 속도는 높이기!!(feat python) (0) | 2024.05.28 |
[HyperCLOVA] 익스플로러를 활용하여 데이터 생성하기 (오덕체 생성!) (1) | 2024.05.24 |
댓글