KaTool
Home
Redis工具包
Excel工具包
图片与Base64转换工具包
  • IP地址工具包(Nginx反向代理解决)
  • 身份证校验工具包
  • 验证码工具包
  • AuthUtil
  • KaTool-Security鉴权框架
  • 七牛云SDK(V1.9.5.BETA及其之前)
  • 综合SDK(V1.9.5.GAMA及其之后)
  • Kimi
定时任务调度
类加载和Bean管理
  • KaTool
  • KaToolTest
  • 在github上修改本页面
  • Karos'Blog
Home
Redis工具包
Excel工具包
图片与Base64转换工具包
  • IP地址工具包(Nginx反向代理解决)
  • 身份证校验工具包
  • 验证码工具包
  • AuthUtil
  • KaTool-Security鉴权框架
  • 七牛云SDK(V1.9.5.BETA及其之前)
  • 综合SDK(V1.9.5.GAMA及其之后)
  • Kimi
定时任务调度
类加载和Bean管理
  • KaTool
  • KaToolTest
  • 在github上修改本页面
  • Karos'Blog
  • KimiAI 服务 API 文档

以下是根据提供的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

    为什么是减法,可以看月之暗面的官方解释

    image-20240821221331248

  • 多线程隔离

  • 多会话隔离

  • 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。