Resumen técnico de Function Calling
Resumen técnico de Function Calling
1. Definición
Function Calling es un mecanismo que permite a los desarrolladores describir herramientas externas disponibles (como APIs) a un modelo de lenguaje grande (LLM) mediante un esquema JSON. Cuando el modelo determina que necesita invocar una herramienta para responder a la pregunta del usuario, genera datos JSON estructurados de tool_calls, indicando el nombre de la función y los parámetros a utilizar. El programa anfitrión analiza y ejecuta esta llamada, devuelve el resultado al modelo, y el modelo genera la respuesta final.
2. Principio central y problemas resueltos
- Esencia: Un ciclo cerrado de "dos rondas de diálogo + ejecución intermedia". En la primera ronda, el modelo decide y genera una solicitud de llamada a herramienta; el código intermedio ejecuta la herramienta; en la segunda ronda, el modelo genera la respuesta final basada en el resultado de la ejecución.
- Problemas resueltos: Resuelve el problema de que, anteriormente, para que el modelo llamara a herramientas, se dependía de un análisis de lenguaje natural inestable y propenso a errores (sentencias if/else), logrando estandarización y mejora de precisión mediante la salida estructurada.
3. División de responsabilidades (analogía de delegación de tareas)
- Desarrollador (RRHH): Define las herramientas, escribiendo el esquema JSON que describe la funcionalidad, parámetros, etc.
- Modelo LLM (Gerente): Comprende la descripción de la herramienta, decide si es necesario invocarla, qué herramienta y con qué parámetros, y genera una solicitud de llamada estructurada (
tool_calls). El modelo solo toma decisiones y genera texto, no ejecuta código. - Ejecutor/Código anfitrión (Empleado): Analiza la solicitud
tool_callsdel modelo, ejecuta realmente la función o llamada API correspondiente, y devuelve el resultado.
4. Definición de herramienta (JSON Schema)
El esquema es el "manual de instrucciones" de la herramienta, con información clave que incluye:
- name: Identificador único de la herramienta.
- description: Crucial, el modelo depende completamente de esta descripción para decidir si invocar la herramienta. Cuanto más clara y precisa sea la descripción, más precisa será la decisión del modelo.
- parameters: Define los parámetros necesarios para la herramienta, su tipo, descripción, restricciones (como valores enumerados, si son obligatorios, etc.).
5. Flujo de llamada completo
El artículo, mediante un ejemplo de código para consultar el clima, muestra el proceso completo desde la pregunta del usuario, la primera llamada al modelo con la definición de la herramienta, el modelo devolviendo tool_calls, la ejecución de la función por el código, la inserción del resultado en el historial de conversación con role: "tool", hasta que el modelo genera la respuesta final en lenguaje natural.
6. Característica avanzada - Llamada paralela a herramientas
Cuando la pregunta del usuario requiere la colaboración de múltiples herramientas (por ejemplo, consultar el clima de varias ciudades simultáneamente), el modelo puede generar en una sola respuesta una lista que contiene múltiples tool_calls. El código anfitrión puede ejecutar estas llamadas en paralelo y luego devolver todos los resultados al modelo para su síntesis, mejorando así la eficiencia.
评论
暂无已展示的评论。
发表评论(匿名)