[ChatGPT] Function calling

2024.09.24 16:15

졸리운_곰 조회 수:66

[ChatGPT] Function calling

 

[ChatGPT] Function calling

Function Calling이란?

Chatgpt Chat Completions API를 사용하면, 질문을 하고 답변을 얻을 수 있다.
Function Calling을 사용하면, 질문에 적합한 애플리케이션 함수와 매개변수를 추천받을 수 있다. 

즉, 애플리케이션에서 어떤 함수를 호출하는게 좋을지 gpt에게 물어볼 수 있는 기능이라고 볼 수 있다.

예제코드

open ai에서 가져온 파이썬 예제 코드이다. 한줄한줄 읽어보면, 어떤 방식으로 사용하는 건지 쉽게 감이 온다. 

import openai
import json


# 항상 같은 날씨를 리턴하는 예시용 더미 함수이다. 
# 실제 개발환경에서는 상황에 맞는 코드를 구현해야한다.
def get_current_weather(location, unit="fahrenheit"):
    """Get the current weather in a given location"""
    weather_info = {
        "location": location,
        "temperature": "72",
        "unit": unit,
        "forecast": ["sunny", "windy"],
    }
    return json.dumps(weather_info)


def run_conversation():
    # Step 1: chatgpt에게 질문과 이용할 수 있는 함수 목록을 전달한다. 
    messages = [{"role": "사용자", "content": "서울 날씨는 어때? "}]
    functions = [
        {
            "name": "get_current_weather",
            "description": "위치를 전달하면, 현재 날씨를 알려준다",
            "parameters": {
                "type": "object",
                "properties": {
                    "location": {
                        "type": "string",
                        "description": "구군시  전달한다. ex. 서울특별시",
                    },
                    "unit": {"type": "string", "enum": ["celsius", "fahrenheit"]},
                },
                "required": ["location"],
            },
        }
    ]
    response = openai.ChatCompletion.create(
        model="gpt-3.5-turbo-0613",
        messages=messages,
        functions=functions, # 이 곳에서 함수 정보를 전달한다.
        function_call="auto",  
    )
    response_message = response["choices"][0]["message"]

    # Step 2: GPT에서 함수 호출을 하라고 했는지 확인하기 
    if response_message.get("function_call"):
        # Step 3: GPT에서 호출하라고 한 함수를 실제로 호출하기 
        available_functions = {
            "get_current_weather": get_current_weather,
        }  # 이 예제에서는 호출할 수 있는 함수를 1개만 두었지만, 실제로는 여러개를 추가할 수 있다. 
        function_name = response_message["function_call"]["name"] // GPT가 제안한 함수 이름 확인하기 
        fuction_to_call = available_functions[function_name] // GPT가 제안한 함수 할당하기  
        function_args = json.loads(response_message["function_call"]["arguments"])
        function_response = fuction_to_call(
            location=function_args.get("location"),
            unit=function_args.get("unit"),
        ) # GPT가 제안한 함수를 GPT에서 찾은 매개변수로 전달하기 

        # Step 4: 함수 호출로 얻은 결과를 gpt에게 다시 보내주기 send the info on the function call and function response to GPT
        messages.append(response_message)  # API으로 호출받은 값을 확장하기 
        messages.append(
            {
                "role": "function",
                "name": function_name,
                "content": function_response,
            }
        ) 
        second_response = openai.ChatCompletion.create(
            model="gpt-3.5-turbo-0613",
            messages=messages,
        )  # gpt에게 응답 결과 다시 전달하기 
        return second_response


print(run_conversation())

참고

https://platform.openai.com/docs/guides/gpt/function-calling
https://github.com/joshlong/chatgpt-spring-boot-starter
https://github.com/openai/openai-cookbook/blob/main/examples/How_to_call_functions_with_chat_models.ipynb

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

출처: https://americanopeople.tistory.com/427 [복세편살:티스토리]

 

 

 

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
26 [chatgpt] 이전 기사 AI타임스 "오픈AI의 AGI 달성 기준은 인간 넘는 '코딩 에이전트' 출시 순간". file 졸리운_곰 2025.01.24 19
25 'o3'가 AI를 바꿔 놓은 5가지 혁신과 하나의 숙제 file 졸리운_곰 2024.12.30 21
24 "돈 너무 많이 든다"오픈AI, 지배구조전면 개편 하기로 - 오픈AI, 결국 투자 친화적 기업으로 전환...지배 구조 바꾼다 file 졸리운_곰 2024.12.29 21
23 [chatgpt] 정말 이러다가 개발자가 사라질까? GPT-o3 시연 영상 한국어 자막 졸리운_곰 2024.12.26 17
22 [chatGPT] 인간에 가까워진 추론력…오픈AI, 신모델 'o3' 공개 file 졸리운_곰 2024.12.22 17
21 [chatGPT] ChatGPT를 활용한 데이터베이스 설계 및 데이터분석 쿼리 실습 사례 - eCommerce 플랫폼을 위한 데이터 베이스 설계 file 졸리운_곰 2024.12.14 17
20 [chatGPT] 5 ChatGPT Prompts That Will Blow Your Mind for Java Programming file 졸리운_곰 2024.10.01 59
19 [ChatGPT] 5 ChatGPT Prompts That Will Blow Your Mind for Java Programming : Java 프로그래밍을 위한 당신의 마음을 날려버릴 5가지 ChatGPT 프롬프트 file 졸리운_곰 2024.09.30 30
» [ChatGPT] Function calling 졸리운_곰 2024.09.24 66
17 [chatgpt] OpenAI의 함수 호출(Function Calling) 소개 및 Python 예시 졸리운_곰 2024.09.24 90
16 [openai, chatgpt] [써보고서] "정말 미쳤다"…오픈AI 新모델 'o1' 추론 능력에 '감탄' file 졸리운_곰 2024.09.18 30
15 [인공지능 기술] 번역기도 안 통하던 한국어 리뷰, 이제 챗GPT가 다 읽는다. file 졸리운_곰 2024.09.14 27
14 [chatgpt] [Python/OpenAI] chatGPT API json 형태로 응답받기 (response_format 사용법) file 졸리운_곰 2024.07.20 20
13 [인공지능 기술][chatGPT] GPTs 사용법 - 챗GPT로 5분만에 나만의 챗봇 만드는 방법 file 졸리운_곰 2024.06.30 59
12 [인공지능 기술] [chatgpt] [Python/OpenAI] chatGPT API json 형태로 응답받기 (response_format 사용법) 졸리운_곰 2024.05.18 35
11 [인공지능 기술][chatGPT] 20달러만 내면…등산·수학 수업·논문 ‘나만의 AI’ 가질 수 있다 앱처럼 사고 파는 ‘GPT 스토어’ 오픈 졸리운_곰 2024.01.12 43
10 [chatGPT] (번역) 웹 개발자를 위한 50가지 이상의 ChatGPT 프롬프트 file 졸리운_곰 2023.10.30 99
9 [chatGPT] How to use ChatGPT API in PHP : PHP에서 ChatGPT API를 사용하는 방법 졸리운_곰 2023.09.10 40
8 [chatGPT] 수학문제 풀기 : 4pi에서 -4pi 까지 tan(x) x sin(x) x cos(x) 를 적분한뒤 최대값을 알려줘 file 졸리운_곰 2023.07.23 40
7 [chatGPT] ChatGPT로 간단한 게임 시나리오를 만들기까지 file 졸리운_곰 2023.07.16 73
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED