aigc 处理器
aigc 处理器是在 yao 中实现的直接与 openai 接口交互的处理器。通过配置 openai 连接器与 openai 请求规则。能把 openai 接口转换成 yao 处理器,可以与其它的 yao 功能串联起来。
适用版本
0.10.3 或以上
使用方法:
配置 OPENAI 连接器。
在应用目录下的 connectors 目录中创建连接器配置文件,配置文件的后缀为.conn.yao
。
0.10.3 版本可以支持 jsonc 的格式的配置文件,后缀为.jsonc 或是.yao,即可以在 json 文本中写入注释。
connectors/gpt-3_5-turbo.conn.yao
类型一定要设置成 openai
{
"LANG": "1.0.0",
"VERSION": "1.0.0", //版本
"label": "Model gpt-3.5-turbo", //说明
"type": "openai", //类型一定是openai
"options": {
"model": "gpt-3.5-turbo",
"key": "$ENV.OPENAI_KEY",
"proxy": "$ENV.OPENAI_AIP_HOST"
}
}
配置文件的语法。最重要是的配置 options 中的 model 与 key
model 是 openai 语言模型
key 是你的 openai 接口访问 key,可以在环境变量中配置,这个 key 不要上传到 github 上,被检测出来后 key 很快就会失效。可以把 key 配置在环境变量中,再在配置文件中使用
$ENV.
语法进行引用。proxy 使用 api.openai.com 的代理地址
以上几个配置支持使用环境变量,即是可以使用$ENV.<ENV_XXX>
来配置,特别是 OPENAI_KEY,一定要使用环境变量,避免泄露。
// DSL the connector DSL
type DSL struct {
ID string `json:"-"`
Type string `json:"type"`
Name string `json:"name,omitempty"`
Label string `json:"label,omitempty"`
Version string `json:"version,omitempty"`
Options map[string]interface{} `json:"options,omitempty"`
}
// Options the redis connector option
type Options struct {
Proxy string `json:"proxy,omitempty"`//如果不是使用https://api.openai.com,可以在这里设置openai的访问地址
Model string `json:"model,omitempty"`//openai模型
Key string `json:"key"`//openai 接口访问密钥
}
配置 openai 请求规则
在 app 目录下创建aigcs
子目录(如果不存在),在子目录下创建 ai 访问配置文件。
配置文件:aigcs\translate.ai.yml
比如这里使用的 connector 是上面配置的gpt-3_5-turbo
。prompts
是指连接 openai 时的初始化指令,提示词的内容按不同的模型有不同的格式。这里配置是的chatgpt3.5-turbo
模型与对应的提示词规则。
# Translate to English
# yao run aigcs.translate 你好
name: Translate
connector: gpt-3_5-turbo
prompts:
- role: system
content: |
- Translate the given question into English.
- Do not explain your answer, and do not use punctuation.
- Do not add your own punctuation marks.
- eg: if I say "你好" reply me "Hello" only
optional:
autopilot: true
配置网络代理
如果无法直接访问 openai,可以在环境变量中配置网络代理。
# https请求代理
HTTPS_PROXY="http://0.0.0.0:10809"
https_proxy="http://0.0.0.0:10809"
# http请求代理
HTTP_PROXY="http://0.0.0.0:10809"
http_proxy="http://0.0.0.0:10809"
测试 aigcs 处理器
处理器的固定前缀为aigcs
,参数与处理器 ID 与其它 yao 处理器类似。
aigc 处理器只适用于单个请求,对话功能需要使用 neo。
yao run aigcs.translate 你好
openai 相关的其它处理器
- openai.tiktoken 计算接口 token
- openai.embeddings Embedding 接口
- openai.chat.completions 聊天接口
- openai.audio.transcriptions 语音翻译接口
测试代码
官方已提供了测试样例
https://github.com/YaoApp/yao-dev-app