找回密码
 立即注册
首页 业界区 业界 Solon AI 开发学习11 - chat - 工具调用与定制(Tool Ca ...

Solon AI 开发学习11 - chat - 工具调用与定制(Tool Call)

院儿饯 3 天前
Tool call(或 Function call)能够让大语言模型在生成时,“按需”调用外部的工具,进而连接外部的数据和系统。通过定义一组函数作为模型可访问的工具(也叫函数工具),并根据对话历史在适当的时候使用它们。然后在应用端执行这些函数,并将结果反馈给模型。
可以实现最新的数据状态(比如,联网查询时实天气)或者指令交互(比如,做运维操作)。是 AI 交互系统的基础技术。
相关接口:
接口或类描述备注FunctionTool函数工具接口为 ChatModel 提供工具ToolProvider工具提供者接口为 ChatModel 提供批量工具FunctionToolDesc函数工具描述类@ToolMapping工具映射注解MethodFunctionTool方法工具MethodToolProvider方法工具提供者分析出对象中的 @ToolMapping 函数,并构建出方法工具集合@Param参数映射注解1、FunctionTool (函数工具声明)接口与注解

工具,目前主要是指函数工具 FunctionTool(未来可能有不同类型的工具)。接口需要声明工具的类型和名字,描述,输入架构(由输入参数的名字、描述、类型,组合构成),及以处理方法。
  1. //工具接口
  2. public interface ChatTool {
  3.     //工具类型
  4.     String type();
  5. }
  6. //函数工具接口
  7. public interface FunctionTool extends ChatTool {
  8.     //工具类型
  9.     default String type() { return "function"; }
  10.     //名字
  11.     String name();
  12.     //描述
  13.     String description();
  14.    
  15.     //是否直接返回给调用者(v3.2.1 后支持)
  16.     boolean returnDirect();
  17.     //输入架构
  18.     ONode inputSchema();
  19.    
  20.     //输出架构
  21.     default String outputSchema() { return null;  }
  22.     //处理
  23.     String handle(Map<String, Object> args) throws Throwable;
  24. }
复制代码
开发时,也可以使用注解简化工具声明(不需要 Bean 容器驱动):
[code]@Target({ElementType.METHOD})@Retention(RetentionPolicy.RUNTIME)@Documentedpublic @interface ToolMapping {    //名字    String name() default "";    //描述    String description();    //是否直接返回给调用者    boolean returnDirect() default false;    //结果转换器    Class

相关推荐

您需要登录后才可以回帖 登录 | 立即注册