OpenAI SDK를 사용하여 Gemini로 함수 호출 사용
컬렉션을 사용해 정리하기
내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.
이 코드 샘플은 OpenAI SDK의 Chat Completions API를 사용하여 Gemini에서 함수를 호출하는 방법을 보여줍니다.
더 살펴보기
이 코드 샘플이 포함된 자세한 문서는 다음을 참조하세요.
코드 샘플
달리 명시되지 않는 한 이 페이지의 콘텐츠에는 Creative Commons Attribution 4.0 라이선스에 따라 라이선스가 부여되며, 코드 샘플에는 Apache 2.0 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 Google Developers 사이트 정책을 참조하세요. 자바는 Oracle 및/또는 Oracle 계열사의 등록 상표입니다.
[[["이해하기 쉬움","easyToUnderstand","thumb-up"],["문제가 해결됨","solvedMyProblem","thumb-up"],["기타","otherUp","thumb-up"]],[["이해하기 어려움","hardToUnderstand","thumb-down"],["잘못된 정보 또는 샘플 코드","incorrectInformationOrSampleCode","thumb-down"],["필요한 정보/샘플이 없음","missingTheInformationSamplesINeed","thumb-down"],["번역 문제","translationIssue","thumb-down"],["기타","otherDown","thumb-down"]],[],[],[],null,["# Use function calling with Gemini using OpenAI SDK\n\nThis code sample demonstrates how to do function calling in Gemini using Chat Completions API in the OpenAI SDK.\n\nExplore further\n---------------\n\n\nFor detailed documentation that includes this code sample, see the following:\n\n- [Function calling reference](/vertex-ai/generative-ai/docs/model-reference/function-calling)\n\nCode sample\n-----------\n\n### Python\n\n\nBefore trying this sample, follow the Python setup instructions in the\n[Vertex AI quickstart using\nclient libraries](/vertex-ai/docs/start/client-libraries).\n\n\nFor more information, see the\n[Vertex AI Python API\nreference documentation](/python/docs/reference/aiplatform/latest).\n\n\nTo authenticate to Vertex AI, set up Application Default Credentials.\nFor more information, see\n\n[Set up authentication for a local development environment](/docs/authentication/set-up-adc-local-dev-environment).\n\n import https://cloud.google.com/python/docs/reference/vertexai/latest/\n import openai\n\n from google.auth import default, transport\n\n # TODO(developer): Update & uncomment below line\n # PROJECT_ID = \"your-project-id\"\n location = \"us-central1\"\n\n https://cloud.google.com/python/docs/reference/vertexai/latest/.init(project=PROJECT_ID, location=location)\n\n # Programmatically get an access token\n credentials, _ = default(scopes=[\"https://www.googleapis.com/auth/cloud-platform\"])\n auth_request = transport.requests.Request()\n credentials.refresh(auth_request)\n\n # OpenAI Client\n client = openai.OpenAI(\n base_url=f\"https://{location}-aiplatform.googleapis.com/v1beta1/projects/{PROJECT_ID}/locations/{location}/endpoints/openapi\",\n api_key=credentials.token,\n )\n\n tools = [\n {\n \"type\": \"function\",\n \"function\": {\n \"name\": \"get_current_weather\",\n \"description\": \"Get the current weather in a given location\",\n \"parameters\": {\n \"type\": \"object\",\n \"properties\": {\n \"location\": {\n \"type\": \"string\",\n \"description\": \"The city and state, e.g. San Francisco, CA or a zip code e.g. 95616\",\n },\n },\n \"required\": [\"location\"],\n },\n },\n }\n ]\n\n messages = []\n messages.append(\n {\n \"role\": \"system\",\n \"content\": \"Don't make assumptions about what values to plug into functions. Ask for clarification if a user request is ambiguous.\",\n }\n )\n messages.append({\"role\": \"user\", \"content\": \"What is the weather in Boston, MA?\"})\n\n response = client.chat.completions.create(\n model=\"google/gemini-2.0-flash-001\",\n messages=messages,\n tools=tools,\n tool_choice=\"auto\",\n )\n\n print(\"Function:\", response.choices[0].message.tool_calls[0].id)\n print(\"Arguments:\", response.choices[0].message.tool_calls[0].function.arguments)\n # Example response:\n # Function: get_current_weather\n # Arguments: {\"location\":\"Boston\"}\n\nWhat's next\n-----------\n\n\nTo search and filter code samples for other Google Cloud products, see the\n[Google Cloud sample browser](/docs/samples?product=generativeaionvertexai)."]]