跳到主要内容

AI 调用

调用第三方AI服务

当前模块定义

sys:ai网络服务Action
标准模块
输入 21 · 输出 9 · 枚举 2

输入参数

  • 接口端点endpointEnum必填
    填写 固定输入默认 chat
    Chat默认chat
    Completionscompletions
  • 模型modelText可选

    适用于可能适用于不同的端点,请参考官方文档使用。

    填写 固定输入
  • API网址apiUrlFormatText可选

    可选,使用自定义的API服务器时使用。请参考模块文档了解如何设置。

    填写 固定输入
  • APIKeyapiKeyText可选
    填写 固定输入
  • OrgnizationapiOrgText可选

    可选

    填写 固定输入
  • 系统提示词systemPromptText可选

    告知AI所需要扮演的角色和要求。如"你是一个专业的翻译助手"。

    填写 固定输入条件 仅:chat
  • 会话IDsessionIdText可选

    可选。每次会话请生成新的GUID格式会话ID,设置后将自动保存会话历史。

    填写 固定输入条件 仅:chat
  • 历史消息historyMessagesText可选

    可选。存放历史消息的json数组,格式请参考文档说明。设定会话ID后,也可直接写发送的历史会话条数。

    填写 固定输入条件 仅:chat
  • 提示词promptText可选

    要为其生成补全的完整提示内容。

    填写 固定输入条件 仅:chat, completions
  • 最大响应Token数maxTokensInteger可选

    最大响应输出token数(max_completion_tokens)

    填写 固定输入默认 0
  • 温度temperatureNumber可选

    用于控制输出的随机性,请根据模型文档设置温度参数。

    填写 固定输入默认 0.2
  • top_ptopPNumber可选
    填写 固定输入条件 仅:chat, completions默认 1
  • nnInteger可选

    对每个问题生成几个结果,将会耗费更多token。

    填写 固定输入默认 1
  • 超时秒数expireSecondsNumber可选

    最长等待秒数

    填写 固定输入默认 120
  • 使用流式输出streamBoolean可选

    即时输出结果,将结果输出到文本窗口,详见文档。此时将无法获得完整响应和token用量等信息。

    填写 输入或变量默认 false
  • 流式输出窗口标识streamToText可选

    一个预先使用非等待模式显示的文本窗口的标识,流式输出时将结果显示在该窗口中。

    填写 固定输入
  • 停止符stopstopText可选

    遇到指定的内容时自动停止生成。可使用\r,\n,\t等表示特殊字符。输入多行时,表示多个停止符。

    填写 固定输入
  • 强制使用代理forceProxyBoolean可选

    即使系统设置中未启用代理,本步骤仍然使用代理访问。

    填写 固定输入默认 false
  • 响应格式respFormatText可选

    留空,或使用"json_object"表示json格式响应,或json格式的完整的response_format内容。

    填写 输入或变量条件 仅:chat
    文本
    JSON对象json_object
  • 附加参数extraPropsDict可选

    用于添加额外的请求参数。请参考文档

    填写 固定输入条件 仅:chat
  • 失败后停止stopIfFailBoolean可选

    失败后是否停止动作

    填写 固定输入默认 true

输出参数

  • 是否成功isSuccessBoolean

    操作是否成功

  • 生成结果resultText

    生成的结果文本

  • 推理内容reasoningContentText

    推理模型的reasoning_content

  • 原始响应内容rawResponseText

    接口返回的原始响应内容

  • 提示Token数promptTokensInteger

    Prompt耗费的token数量

  • 响应Token数completionTokensInteger

    响应耗费的token数量

  • 总Token数totalTokensInteger

    总耗费的token数量

  • 结束原因finishReasonText
  • 历史消息historyMessagesObject

    消息类型列表对象

    条件 仅:chat

注:

  • 使用本模块需要您具备一定的网络条件和服务商账号。
  • 数据将会发送到国外服务器,请勿发送敏感或隐私信息、法律法规规定不可传输到国外的信息。
  • 请勿使用此功能用于可能非法的活动。
  • 每种模型和服务端点之间有一定联系,请参考官方文档了解端点可用模型。
  • 每个请求的提示和响应token数量受到模型限制。
  • 请详细阅读官方文档以了解各方面知识和信息。

基本原理

Quicker动作中主要用来处理一些专用的场景,而不是连续的会话。

一般的做法是:

  • 在系统提示中,告诉AI需要扮演的角色。
  • 使用文本插值等方式拼接出完整的“提示”,告诉AI实际要生成的内容。 这里面包含指令要求和实际待处理的内容。

下面是一个中英互译的翻译动作。提示包含两个部分:

  • 如果下面的文字包含中文,则将其翻译成英文(只返回翻译结果);如果下面的文字中不包含中文,则将这些内容翻译成中文(只返回翻译结果): 告知AI,后面的内容是要翻译的实际内容,翻译的方法是根据内容里是否包含中文。
  • 通过插值将{text}文本变量的内容放在后面。这部分可能是通过获取选中文本用户输入方式得到的。

参数

AI 调用

调用第三方AI服务
接口端点
模型
gpt-3.5-turbo
适用于可能适用于不同的端点,请参考官方文档使用。
API网址
 
可选,使用自定义的API服务器时使用。请参考模块文档了解如何设置。
APIKey
apikey
Orgnization
 
可选
系统提示词
你是一位诗人。
告知AI所需要扮演的角色和要求。如"你是一个专业的翻译助手"。
会话ID
 
可选。每次会话请生成新的GUID格式会话ID,设置后将自动保存会话历史。
历史消息
 
可选。存放历史消息的json数组,格式请参考文档说明。设定会话ID后,也可直接写发送的历史会话条数。
提示词
$$请根据下面的提示词写一首诗歌: {text}
要为其生成补全的完整提示内容。
最大响应Token数
0
最大响应输出token数(max_completion_tokens)
温度
0.6
用于控制输出的随机性,请根据模型文档设置温度参数。
top_p
1
n
1
对每个问题生成几个结果,将会耗费更多token。
超时秒数
30
最长等待秒数
流式输出窗口标识
INPUT_TEXT
一个预先使用非等待模式显示的文本窗口的标识,流式输出时将结果显示在该窗口中。
停止符stop
 
遇到指定的内容时自动停止生成。可使用\r,\n,\t等表示特殊字符。输入多行时,表示多个停止符。
响应格式
留空,或使用"json_object"表示json格式响应,或json格式的完整的response_format内容。
附加参数
 
用于添加额外的请求参数。请参考文档
是否成功
-- 选择变量 --
操作是否成功
生成结果
result
生成的结果文本
推理内容
-- 选择变量 --
推理模型的reasoning_content
原始响应内容
-- 选择变量 --
接口返回的原始响应内容
提示Token数
-- 选择变量 --
Prompt耗费的token数量
响应Token数
-- 选择变量 --
响应耗费的token数量
总Token数
-- 选择变量 --
总耗费的token数量
结束原因
-- 选择变量 --
历史消息
-- 选择变量 --
消息类型列表对象
步骤注释
 

【端点】目前支持Chat或Completions。

【模型】模型id。

【系统提示】用于告知AI所扮演的角色以及生成内容时的要求。

【提示】用户向AI给出的完整提示文字(提示词)。AI将根据这些提示生成内容。自1.42.21版本起,支持两种形式的内容:

  • 纯文本提示词。
  • 通过json数组,提供兼容gpt-4-vision的消息内容。示例:

AI 调用

调用第三方AI服务
提示词
[ { "type": "image_url", "image_url": { "url": "https://cdn-dynmedia-1.microsoft.com/is/image/microsoftcorp/Studio-2-platinum_sprite_thumbnaill?sc=1" } }, { "type": "text", "text": "图像描述了什么?" } ]
要为其生成补全的完整提示内容。

注意:这里不应当填写完整的请求体json。

【最大响应Token数】token大约等于1个汉字或2/3个英文单词。建议使用0,太短时输出会被截断。每个模型有自己的提示和响应总共token数限制,较新的模型通常为4000。提示内容的token数+最大响应token数不能超过模型限制,否则会失败。

【温度】Temperature,0-1之间的数值。值越小,输出越稳定,倾向于返回置信度更高的回答。值越大,输出越随机,会更发散(创造性)。

【APIKey】从服务商获取的API秘钥。注意此信息为保密信息,

【Orgnization】APIKey对应的组织ID。可选。

【top_p】请参考官方文档。

【n】输出几个结果,将会加倍耗费token。模块只能输出一个结果,其它结果需要从原始响应中解析。

【使用流式输出】立即看到输出的一种查询方式,可将结果连续输出到文本窗口。此方式下无法获得原始响应内容、耗费的token数等信息。

【流式输出窗口标识】使用流式输出时,用于指定前面步骤打开的文本窗口。设置为INPUT_TEXT,可将内容直接模拟输入到活动窗口(窗口切换时将停止输出)。

【停止符stop】官方参考文档。遇到此内容时,接口停止输出更多结果。留空,使用推荐默认值<|endoftext|>或自定义的内容。在使用第三方接口时,请务必设置此值(或使用1.38.35以上版本),建议使用<|endoftext|>

【API网址】自定义API网址,用于使用第三方服务中转请求时使用。

  • 使用Azrue的OpenAI服务时,API网址可以设置为:https://YOUR_RESOURCE_NAME.openai.azure.com/openai/deployments/YOUR_DEPLOYMENT_NAME/{1}?api-version=2023-05-15

  • YOUR_RESOURCE_NAMEYOUR_DEPLOYMENT_NAME 替换为实际的值。{1}作为接口名称的占位符保持不动。api-version的值可根据需要修改。

  • 使用第三方网址时,可以按如下格式:https://api网址/{1} ,其中{1}作为接口名称(如chat/completions)的占位符保持不动。

  • 1.44.32+版本,也可以直接指定以chat/completions结尾的完整网址。对于非chat/completions结尾的完整网址,可以在网址前增加!强制使用此网址,如!https://myserver/api/chat

  • 示例:

  • 硅基流动的接口网址为https://api.siliconflow.cn/v1/{1}

  • Ollama,本机地址为http://127.0.0.1:11434/v1/{1}, 局域网其它服务器,请替换对应的ip地址和端口号。

【超时秒数】超时时间。

【响应格式】文本或json_object。json_object用于指示输出内容为json格式,通常需要结合使用合适的提示词,并且要避免超过token限制被中间截止。请参考OpenAI文档了解此参数的用途。

自1.43.55版本开始支持通过json文本指定自定义的内容,如json_schema。例如:

{
"type": "json_schema",
"json_schema": {
"name": "math_reasoning",
"schema": {
"type": "object",
"properties": {
"steps": {
"type": "array",
"items": {
"type": "object",
"properties": {
"explanation": { "type": "string" },
"output": { "type": "string" }
},
"required": ["explanation", "output"],
"additionalProperties": false
}
},
"final_answer": { "type": "string" }
},
"required": ["steps", "final_answer"],
"additionalProperties": false
},
"strict": true
}
}

【附加参数】用于为第三方接口提供额外的参数。可传入词典值,json,或匿名对象,如:

$= new {参数名 = "参数值"};

流式响应

流式输出目前无法检测错误。

流式输出有两种方式:

一、通过文本窗口显示

实现方法:

文本窗口显示窗口,不等待关闭(立即开始执行后续的步骤) 翻译结果:
RAI 调用

1)事先创建一个以非等待模式显示的文本窗口,设置窗口标识(建议使用‘=’作为窗口标识,相当于动作ID,以避免动作之间冲突)。

2)在AI调用模块中,启用流式输出和输出的文本窗口标识。

这样当收到新的内容后,会将内容追加到窗口中。

二、模拟输入到当前活动窗口

将“流式输出窗口标识”设置为INPUT_TEXT。此时会将内容通过模拟输入的方式发送到当前焦点窗口。 如果切换了焦点窗口,则输出会停止。

历史会话

从1.37.17版本开始支持历史消息自动发送。

可以有2种使用方式:

1)每次传入历史消息的内容,格式为json数组。

此时不需要设定会话ID,也不会输出历史消息的内容。需要开发者自行维护历史消息记录。

2)由Quicker自动保存和回传历史消息。

数据文件保存在Quicker数据文件夹\AiLogs目录中。

此时需设置这些参数:

【会话ID】每次会话前,使用“生成GUID”模块生成一个全球唯一ID作为会话ID。(只能使用GUID格式的会话ID)

【历史消息】参数中设定回传的历史消息个数。因为每次调用来回总token数量有限制,会话太长时需要抛弃更早的消息。

输出参数【历史消息】,返回历史消息对象列表,输出给文本变量时,自动转换为json格式。

建议使用会话ID作为显示会话内容的文本窗口标识,避免一个动作多次运行造成窗口冲突问题。

示例动作:AI对话测试

示例动作

更新历史

  • 20230714 Fix Azure接口地址错误。
  • 20240327 增加响应格式和附加参数的说明。增加提示词支持gpt-4-vision请求格式。
  • 20241219 增加自定义相应格式的说明。
  • 20250307 版本1.43.61版本支持输出reasoning_content推理过程。当文本窗口设置为Markdown语法高亮时,灰色显示<think>内容。

更新于