ChatGPT API의 function_call

2024. 2. 11. 10:56·파이썬
반응형

function_call이란?

function_call은 ChatGPT API가 사전 정의된 함수와 상호 작용하도록 하는 기능입니다. 개발자는 실제 세계의 작업이나 데이터 검색 작업을 나타내는 함수를 정의합니다. 모델은 대화에서 적절한 상황을 발견하면 다음과 같은 작업을 수행할 수 있습니다.

  • 프롬프트 또는 대화 기록에 따라 function_call의 필요성을 인식합니다.
  • 함수에 필요한 인수를 나타내는 JSON을 생성합니다.
  • 이 JSON을 애플리케이션 코드에 전달하여 함수를 실행합니다.
  • 함수 결과를 대화 흐름에 다시 통합합니다.

function_call의 장점

  • 구조화된 데이터 추출: extract_data(name, age)와 같은 함수를 사용하여 텍스트에서 특정 데이터를 추출합니다.
  • API 통합: send_email(to, subject, body)와 같은 함수를 통해 외부 API에 연결합니다.
  • 실제 세계 작업: purchase_item(product_id, quantity)와 같은 함수를 사용하여 (사용자 확인 후) 실제 세계 작업을 트리거합니다.
  • 향상된 상호 작용: 더욱 매력적이고 역동적인 챗봇 상호 작용을 만듭니다.

예시

messages = [{"role": "user", "content": "대한민국, 미국, 중국"}]

function_call = [
    {
        "type": "function",
        "function": {
            "name": "get_country_data",
            "description": "주어진 문자열에서 나라를 추출해",
            "parameters": {
                "type" : "object",
                "properties" : {
                    "peoples" : {"type": "string", "description": "해당 국가의 인구수를 알려줘"},
                    "president" : {"type": "string", "description": "해당 국가의 대통령을 알려줘"}
                },
                "required" : ["peoples", "president"]
            },
        },
    },
]
client = OpenAI(api_key="본인의 API_KEY를 입력하세요")

response = client.chat.completions.create(
    model="gpt-3.5-turbo-1106",
    messages=messages,
    tools=function_call,
    tool_choice="auto",
)

message = response.choices[0].message
tool_calls = message.tool_calls

if tool_calls : 
    for tool_call in tool_calls :
        print(tool_call.function.arguments)

 

출력 결과 

gpt 3.5는 2021년 기준 데이터로 학습되었다

 

추가 고려 사항

  • 특히 민감한 데이터나 작업을 처리할 때는 함수 보안을 확보해야 합니다.
  • 모델이 사용자 확인 없이 의도하지 않은 작업을 트리거하지 못하도록 안전 장치를 구현합니다.
  • 최적의 결과를 얻으려면 함수와 대화 프롬프트를 지속적으로 실험하고 개선합니다.
저작자표시 비영리 변경금지 (새창열림)

'파이썬' 카테고리의 다른 글

데이터 클래스 비교: dataclass vs Pydantic BaseModel  (0) 2024.12.08
[Python 프로파일링] py-spy와 yappi로 파이썬 코드 성능 분석하기  (2) 2024.12.02
SQLAlchemy: 데이터베이스 툴킷  (5) 2024.11.13
ChatGPT API를 활용한 똑똑한 채팅봇 만들기: OpenAI  (1) 2024.02.09
크롤링 요소 검색 비교 : Selenium vs BeautifulSoup  (0) 2024.02.02
'파이썬' 카테고리의 다른 글
  • [Python 프로파일링] py-spy와 yappi로 파이썬 코드 성능 분석하기
  • SQLAlchemy: 데이터베이스 툴킷
  • ChatGPT API를 활용한 똑똑한 채팅봇 만들기: OpenAI
  • 크롤링 요소 검색 비교 : Selenium vs BeautifulSoup
코샵
코샵
나의 코딩 일기장
    반응형
  • 코샵
    끄적끄적 코딩 공방
    코샵
    • 분류 전체보기 (725)
      • 스마트팜 (0)
      • 상품 추천 (223)
      • MongoDB (4)
      • 하드웨어 (17)
      • 일기장 (4)
      • 파이썬 (130)
        • Basic (41)
        • OpenCV (8)
        • Pandas (15)
        • PyQT (3)
        • SBC(Single Board Computer) (1)
        • 크롤링 (14)
        • Fast API (29)
        • Package (6)
      • Unity (138)
        • Tip (41)
        • Project (1)
        • Design Pattern (8)
        • Firebase (6)
        • Asset (2)
      • Linux (4)
      • C# (97)
        • Algorithm (11)
        • Window (7)
      • TypeScript (51)
        • CSS (10)
      • Git (11)
      • SQL (5)
      • Flutter (10)
        • Tip (1)
      • System (1)
      • BaekJoon (6)
      • Portfolio (2)
      • MacOS (1)
      • 유틸리티 (1)
      • 서비스 (6)
      • 자동화 (3)
      • Hobby (10)
        • 물생활 (10)
        • 식집사 (0)
  • 인기 글

  • 태그

    유니티
    ipcamera
    믈레코비타멸균우유
    C#
    상품 리뷰 크롤링
    programming101
    파이썬
    카페24리뷰
    긴유통기한우유
    카페24리뷰이관
    리뷰이관
    unity
    cv2
    appdevelopment
    list
    셀레니움
    programmerlife
    devlife
    learntocode
    라떼우유
    rtsp
    쇼핑몰리뷰
    Python
    스크립트 실행 순서
    스크립트 실행
    codingtips
    리스트
    스마트스토어리뷰
    리뷰관리
    codingcommunity
  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
코샵
ChatGPT API의 function_call
상단으로

티스토리툴바