使用连接器调用大模型
当系统需要对接外部大模型服务时,可以使用配置大模型连接器,通过脚本和编排的方式快速集成到华为云Astro轻应用中,帮助您快速构建智能应用。
前提条件
- 已从外部大模型提供商获取了大模型调用的API地址以及API Key。
- 外部大模型请求及响应格式需符合OpenAI标准,否则可能会出现流式调用及流式响应渲染异常等问题。
新建大模型连接器
以自定义大模型为例,向您介绍如何新建大模型连接器。
- 参考登录华为云Astro轻应用应用设计器中操作,进入应用设计器。
- 在左侧导航栏中,选择“集成”。
- 单击“连接器”中的“ 连接器实例”,进入连接器实例页面。
- 在左侧导航栏中,选择“大模型 > 自定义大模型”。
- 在右侧页面单击“+”,设置大模型对接参数。
图1 设置大模型对接参数
表1 创建自定义大模型连接器参数说明 参数
说明
标签
自定义大模型连接器的标签,创建后可修改。
取值范围:1~64个字符。
名称
自定义连接器的名称,名称是连接器在系统中的唯一标识,创建后不可修改。命名要求如下:
模型名称
具体大模型的模型标识。在调用该连接器时,会将此字段传递给大模型API中的model字段。
URL
大模型提供方提供的大模型API调用地址。
API Key
大模型提供方提供的用于鉴权的密钥。如果无需鉴权,可省略此配置。
上下文长度
大模型上下文的长度。在调用该连接器时,会将此字段传递给大模型API中的num_ctx字段。如果大模型调用API不支持此参数或调用使用模型默认值,可省略此配置。
最大token长度
大模型回复的最大长度。在调用该连接器时,会将此字段传递给大模型API中的max_tokens字段。如果大模型调用API不支持此参数或调用使用模型默认值,可省略此配置。
描述
大模型连接器的描述信息。
取值范围:0~85个字符。
- 设置完成后,单击“保存”。
- 测试大模型连接器的连通性。
- 在自定义大模型详情页面的“测试”中,单击“测试”,进入大模型连接器测试页面。
- 在“输入内容”中,输入对话内容(例如:你好),单击“测试”,查看返回消息是否正确响应。
如果返回消息中有流式响应报文输出,说明大模型连接器配置成功。否则,请检查大模型连接器信息是否正确。图2 大模型连接器测试页面
使用脚本调用大模型连接器
连接器创建后,支持在脚本中调用大模型连接器,便于您快速集成到智能应用中。
- 参考创建空白华为云Astro轻应用脚本中操作,创建一个空白脚本。
- 在脚本编辑器中,输入如下代码。
import * as llm from 'llm'; /* * The input parameter is defined by `@action.param()`. */ export class Input { @action.param({ type: "String", required: true, description: "the chat message" }) inputParam: string; } /* * The output parameter is defined by `@action.param()`. */ export class Output { } /* * Defin the main service class. * * - The service entry function is defined by `@action.method()`. * - All dependent objects should be defined via `@useObject([])` (for objects) or `@useBo([])` (for business objects). */ export class LLMConnectorScript { @action.method({ input: "Input", output: "Output", description: "invoke LLM connector" }) run(input: Input): Output { let output = new Output(); // 创建大模型连接器客户端,第一个参数是创建的大模型连接器名称,第二个参数是大模型类型 let client = llm.newClient("命名空间__selfHostDeepSeekR1", "custom_llm"); let message = [{ "role": "system", "content": "You are a helpful assistant." }, { "role": "user", "content": input.inputParam }]; let resp = client.chat(message, { "temperature": 0.8, "top_p": 1.0, "presence_penalty": 0.0 }); return output; } }
其中,“命名空间__selfHostDeepSeekR1”为新建大模型连接器中新建连接器的名称,“custom_llm”为大模型的类型。大模型类型与大模型API提供商的对应关系,如表2所示。
- 单击脚本编辑器页面上方的
,保存脚本。
- 保存成功后,单击
,运行脚本。
- 在页面底部“输入参数”中,设置输入请求参数,单击测试窗口右上角的
。
{ "inputParam": "你好" }
在输出参数页签,可查看到大模型流式响应结果。你好!有什么我可以帮助你的吗?
- 单击脚本编辑器页面上方的
,启用脚本。
使用服务编排调用大模型连接器
连接器创建后,支持在服务编排中调用大模型连接器,便于您快速集成到智能应用中。
- 参考创建空白华为云Astro轻应用服务编排中操作,创建一个空白服务编排。
- 创建服务编排的入参和出参变量。
因为该服务编排调用的是大模型服务接口,需要定义该服务编排的入参和出参,与接口的入参和出参类型保持一致。
- 在服务编排设计页面右侧,选择
。
- 在全局上下文页面,单击“变量”后的“+”,新建一个变量。
- 单击变量后的
,修改变量的名称为“inputMessages”,数据类型设置为“任意”,描述设置为“对话内容”,单击“保存”。
- 按照上述操作,新建表3中的inputConfig变量。
- 选中开始图元
,单击
,设置整个服务编排的入参。
图3 设置服务编排入参
- 在服务编排设计页面右侧,选择
- 在服务编排设计页面左侧,选择“连接器 > 连接器实例 > 大模型”,拖拽“自定义大模型”图元至画布中。
自定义大模型连接器是系统预置的与自定义大模型连接器对接的接口。
- 选中自定义大模型连接器图元,在基本信息中,选择新建大模型连接器中创建的连接器“命名空间__selfHostDeepSeekR1”。
图4 关联图元与大模型连接器
- 单击
,设置动作及参数。
图5 设置动作及参数 - 连接开始和自定义大模型连接器图元。
图6 连接图元
- 单击页面上方的
,保存服务编排。
- 保存成功后,单击
,运行服务编排。
- 设置输入参数后,单击“运行”。
{ "inputMessages": [ { "role": "user", "content": "你是谁" } ], "inputConfig": { "temperature": 0.8, "top_p": 1.0, "presence_penalty": 0.0 } }
- 单击编辑器上方的
,启用服务编排。