@Preview(value="3.9.1") public class RestApiSkill extends AbsSkill
该技能通过解析 Swagger/OpenAPI 定义,将企业的业务接口动态转化为 AI 的可调用工具。 核心特性:
OpenApiResolver,支持对复杂嵌套模型和深层 Schema 的递归展开。ApiAuthenticator 统一处理 Token、OAuth2 或 Header 注入。| 构造器和说明 |
|---|
RestApiSkill(java.lang.String definitionUrl,
java.lang.String apiBaseUrl) |
| 限定符和类型 | 方法和说明 |
|---|---|
RestApiSkill |
authenticator(ApiAuthenticator authenticator) |
java.lang.String |
callApi(java.lang.String apiName,
java.util.Map<java.lang.String,java.lang.Object> pathParams,
java.util.Map<java.lang.String,java.lang.Object> dataParams) |
java.lang.String |
description()
获取技能描述
|
java.lang.String |
getApiDetail(java.lang.String apiName) |
java.lang.String |
getInstruction(Prompt prompt)
动态指令注入:生成并注入到 System Message 的描述性文本(如果使用 MD 层级,从第三级开始)
用于约束 AI 如何使用该技能下的工具
|
java.util.Collection<FunctionTool> |
getTools(Prompt prompt)
动态工具注入:获取该技能挂载的所有功能工具
|
RestApiSkill |
maxContextLength(int length) |
java.lang.String |
name()
获取技能名称(默认类名)
|
void |
onAttach(Prompt prompt)
挂载钩子:技能被激活时触发
可用于初始化会话状态、审计日志记录或上下文预处理
|
RestApiSkill |
resolver(ApiResolver resolver) |
RestApiSkill |
schemaMode(SchemaMode mode) |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitisSupportedpublic RestApiSkill(java.lang.String definitionUrl,
java.lang.String apiBaseUrl)
public RestApiSkill schemaMode(SchemaMode mode)
public RestApiSkill maxContextLength(int length)
public RestApiSkill authenticator(ApiAuthenticator authenticator)
public RestApiSkill resolver(ApiResolver resolver)
public java.lang.String name()
Skillpublic java.lang.String description()
Skillpublic java.lang.String getInstruction(Prompt prompt)
Skillpublic java.util.Collection<FunctionTool> getTools(Prompt prompt)
Skill@ToolMapping(name="get_api_detail", description="\u83b7\u53d6\u7279\u5b9a API \u7684\u53c2\u6570 Schema \u548c\u8fd4\u56de\u503c\u5b9a\u4e49\uff08\u542b\u6a21\u578b\u6df1\u5ea6\u5c55\u5f00\uff09") public java.lang.String getApiDetail(@Param(value="api_name") java.lang.String apiName)
@ToolMapping(name="call_api", description="\u6267\u884c REST \u63a5\u53e3\u8bf7\u6c42") public java.lang.String callApi(@Param(value="api_name") java.lang.String apiName, @Param(value="path_params") java.util.Map<java.lang.String,java.lang.Object> pathParams, @Param(value="query_or_body_params") java.util.Map<java.lang.String,java.lang.Object> dataParams) throws java.io.IOException
java.io.IOException