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
코샵
코샵
나의 코딩 일기장
    반응형
  • 코샵
    끄적끄적 코딩 공방
    코샵
    • 분류 전체보기 (727)
      • 스마트팜 (1)
      • 상품 추천 (223)
      • DataBase (0)
        • MongoDB (4)
        • PostgreSQL (0)
      • 하드웨어 (18)
      • 일기장 (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)
  • 인기 글

  • 태그

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

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

티스토리툴바