以下是根据提供的Java类生成的VuePress Markdown格式的API文档示例 (如果提前对某些参数进行设置的话,参数是可缺省调用的,具体的可以通过IDEA查看):
KimiAI 服务 API 文档
支持的功能
针对API的实现
- ToolCalls调用
- Stream流输出
- ask形式询问
- 上下文缓存
- 文件解析
- JSON返回
SDK外设功能
模型自动升级
主要说下机制原理: 在大模型提示限制的时候会自动升级。
- 1.当前模型最大支持Token < 当前请求占用的Token
- 1.1.模型升级,会按照当前会话token和最近支持的最大量进行匹配
- 1.2.设置请求的max_tokens = 当前升级后的模型所支持的最大token数-当前请求占用的Token
- 2.当前请求占用的Token<请求中的max_tokens<当前模型最大支持Token
- 设置请求的max_tokens = 当前模型所支持的最大token数-当前请求占用的Token
为什么是减法,可以看月之暗面的官方解释
- 1.当前模型最大支持Token < 当前请求占用的Token
多线程隔离
多会话隔离
JSON原型返回
会话隔离需要针对会话ID绑定不同的KimiAiService对象,单对象线程隔离通过multi属性进行配置
yaml快速配置
katool:
util:
ai:
kimi:
key: ***
multi: false # 开启单对象支持多线程
enableAutoUpgrade: true # 开启自动升级
接口文档
1. KimiTuples
类
工具类提供创建元组的方法。
1.1. of
静态方法
- 描述: 创建一个包含特定元素的元组。
- 签名:
public static <T> Tuple3<String, String, T> of(String functionName, String functionDescription, T function);
- 参数:
functionName
: 函数名称。functionDescription
: 函数描述。function
: 函数本身。
2. CommonAIMessage
类
表示AI服务中的消息对象。
2.1. 构造函数
- 描述: 初始化消息对象。
- 签名:
public CommonAIMessage(String role, String message);
2.2. role
属性
- 类型:
String
- 描述: 消息的角色。
2.3. content
属性
- 类型:
String
- 描述: 消息内容。
3. KimiAIService
类
核心服务类,封装了与AI进行交互的主要方法。
3.1. ask
方法
- 描述: 向AI发送消息并接收响应。
- 签名:
public String ask(String msg);
3.2. askWithContextUseTool
方法
- 描述: 使用工具并发送消息到AI。
- 签名:
public String askWithContextUseTool(String msg, Map<String, Function<Map<String, String>, String>> kimiFunctionDriverMap);
3.3. uploadFile
方法
- 描述: 上传文件到AI服务。
- 签名:
public String uploadFile(File file);
3.4. listOfFile
方法
- 描述: 获取文件列表。
- 签名:
public KimiBaseResponse<List<KimiFileMeta>> listOfFile();
3.5. deleteFile
方法
- 描述: 删除指定的文件。
- 签名:
public KimiDefaultDeleteResponse deleteFile(String fileId);
4. KimiAIServiceFactory
类
用于创建KimiAIService
实例的工厂类。
4.1. createDefualtKimiAiService
静态方法
- 描述: 创建默认的KimiAI服务实例。
- 签名:
public static <T> KimiAIService createDefualtKimiAiService(String kimiModel, PromptTemplateDrive promptTemplateDrive, Map<Tuple3<String, String, Function<Map<String, String>, String>>, List<Tuple3<String, String, T>>> toolsConfig, Boolean autoUpgrate, Boolean multi);
4.2. createKimiAiService
静态方法
- 描述: 根据提供的配置创建KimiAI服务实例。
- 签名:
public static <T> KimiAIService createKimiAiService(String kimiModel, PromptTemplateDrive promptTemplateDrive, Map<Tuple3<String, String, Function<Map<String, String>, String>>, List<Tuple4<String, String, T, String>>> toolsConfig, Boolean autoUpgrate, Boolean multi);
5. KimiModel
接口
定义了可用的KimiAI模型常量。
5.1. 模型常量
MOONSHOT_V1_8K
:"moonshot-v1-8k"
MOONSHOT_V1_32K
:"moonshot-v1-32k"
MOONSHOT_V1_128K
:"moonshot-v1-128k"
请注意,这只是一个示例文档,实际的API文档应该包括每个方法的详细描述、参数说明、返回类型、异常信息以及示例代码。如果Java类有注释,应该从注释中提取这些信息以丰富文档内容。此外,示例代码和教程部分可以帮助用户更好地理解如何使用API。