메인 콘텐츠로 건너뛰기

Documentation Index

Fetch the complete documentation index at: https://docs.aihubmix.com/llms.txt

Use this file to discover all available pages before exploring further.

Responses API Beta는 완전한 Tool Calling 기능을 지원하여, 모델이 다음을 수행할 수 있도록 합니다:
  • 함수 호출 (Function Calling)
  • 여러 도구를 병렬로 실행
  • 복잡한 다단계 워크플로우 처리

기본 도구 정의

요청 헤더

curl -X POST https://aihubmix.com/v1/responses \
  -H "Authorization: Bearer YOUR_AIHUBMIX_API_KEY" \
  -H "Content-Type: application/json" \

요청 본문

{
  "model": "claude-sonnet-4-6",
  "input": [
    {
      "type": "message",
      "role": "user",
      "content": [
        {
          "type": "input_text",
          "text": "What is the weather in San Francisco?"
        }
      ]
    }
  ],
  "tools": [
    {
      "type": "function",
      "name": "get_weather",
      "description": "Get the current weather at a location",
      "strict": null,
      "parameters": {
        "type": "object",
        "properties": {
          "location": {
            "type": "string",
            "description": "The city and state, e.g. San Francisco, CA"
          },
          "unit": {
            "type": "string",
            "enum": ["celsius", "fahrenheit"]
          }
        },
        "required": ["location"]
      }
    }
  ],
  "tool_choice": "auto",
  "max_output_tokens": 5000
}

도구 호출 전략

tool_choice 파라미터는 모델이 도구를 호출하는 시점과 방법을 제어합니다.
파라미터설명
auto모델이 도구 호출 여부를 자동으로 결정
none모델이 어떤 도구도 호출하지 못하도록 방지

다중 도구 정의

복잡한 작업에서는 여러 도구를 정의하여, 모델이 사용자 요구에 따라 적절한 도구를 선택할 수 있도록 할 수 있습니다.
import requests

# Weather tool
weather_tool = {
    "type": "function",
    "name": "get_weather",
    "description": "Get current weather information for a city",
    "parameters": {
        "type": "object",
        "properties": {
            "city": {
                "type": "string",
                "description": "The name of the city"
            }
        },
        "required": ["city"]
    }
}

# Calculator tool
calculator_tool = {
    "type": "function",
    "name": "calculate",
    "description": "Perform mathematical calculations",
    "parameters": {
        "type": "object",
        "properties": {
            "expression": {
                "type": "string",
                "description": "The mathematical expression to evaluate"
            }
        },
        "required": ["expression"]
    }
}

response = requests.post(
    "https://aihubmix.com/v1/responses",
    headers={
        "Authorization": "Bearer AIHUBMIX_API_KEY",
        "Content-Type": "application/json",
    },
    json={
        "model": "glm-5",
        "input": [
            {
                "type": "message",
                "role": "user",
                "content": [
                    {
                        "type": "input_text",
                        "text": "What is 25 * 4?"
                    }
                ]
            }
        ],
        "tools": [weather_tool, calculator_tool],
        "tool_choice": "auto",
        "max_output_tokens": 5000
    }
)

print(response.json())

도구 호출이 포함된 응답

{
  "id": "resp_09b8eb7c272559fc0069affbaab5cc8194a5005746b80f3b57",
  "object": "response",
  "created_at": 1773140906,
  "completed_at": 1773140908,
  "status": "completed",
  "background": false,
  "error": null,
  "model": "gpt-54",
  "service_tier": "default",
  "temperature": 1.0,
  "top_p": 1.0,
  "frequency_penalty": 0.0,
  "presence_penalty": 0.0,
  "max_output_tokens": 5000,
  "max_tool_calls": null,
  "parallel_tool_calls": true,
  "tool_choice": "auto",
  "truncation": "disabled",
  "store": true,
  "previous_response_id": null,
  "prompt_cache_key": null,
  "prompt_cache_retention": null,
  "instructions": null,
  "safety_identifier": null,
  "user": null,
  "metadata": {},

  "reasoning": {
    "effort": "none",
    "summary": null
  },

  "content_filters": [
    {
      "blocked": false,
      "source_type": "completion",
      "content_filter_raw": [],
      "content_filter_results": {},
      "content_filter_offsets": {
        "start_offset": 0,
        "end_offset": 1289,
        "check_offset": 0
      }
    }
  ],

  "text": {
    "format": {
      "type": "text"
    },
    "verbosity": "medium"
  },

  "output": [
    {
      "id": "fc_09b8eb7c272559fc0069affbabb0288194b63aa879435c7cd0",
      "type": "function_call",
      "status": "completed",
      "name": "calculate",
      "call_id": "call_PFtWscQ3pAyfSaotwujhT0sn",
      "arguments": {
        "expression": "25*4"
      }
    }
  ],

  "tools": [
    {
      "type": "function",
      "name": "get_weather",
      "description": "Get current weather information for a city",
      "strict": true,
      "parameters": {
        "type": "object",
        "properties": {
          "city": {
            "type": "string",
            "description": "The name of the city"
          }
        },
        "required": ["city"],
        "additionalProperties": false
      }
    },
    {
      "type": "function",
      "name": "calculate",
      "description": "Perform mathematical calculations",
      "strict": true,
      "parameters": {
        "type": "object",
        "properties": {
          "expression": {
            "type": "string",
            "description": "The mathematical expression to evaluate"
          }
        },
        "required": ["expression"],
        "additionalProperties": false
      }
    }
  ],

  "usage": {
    "input_tokens": 86,
    "output_tokens": 25,
    "total_tokens": 111,
    "input_tokens_details": {
      "cached_tokens": 0
    },
    "output_tokens_details": {
      "reasoning_tokens": 0
    }
  }
}

사용 권장 사항

  1. 명확한 설명: 자세한 함수 설명과 파라미터 설명을 제공하세요.
  2. 올바른 형식: 파라미터는 유효한 JSON을 사용해야 합니다.
  3. 오류 처리: 도구가 호출 불가능한 상황을 처리하세요.
  4. 병렬 실행: 가능한 경우 도구가 독립적으로 실행되도록 설계하세요.
  5. 대화 흐름: 컨텍스트를 제공하기 위해 후속 요청에 도구 응답을 포함하세요.

마지막 업데이트: 2026-06-01