ChatGPT3.5接口对接-配置代理域名-配置KEY-限制对话数量(附实现代码)
2023-06-13 09:17:39 时间
因为众所周知的原因,OpenAI的官网域名以及API域名已经被封了
所以直接调用api.openai.com的接口是访问不通的,所以我们在后台提供了配置代理域名地方
您可以自己海外服务器搭建代理域名,然后把该域名填写到后台配置处【团队设置】【机器人设置】【chatGPT配置】
同样,在该处还可以配置自己的OpenAI key,这样就能对外服务了
调用GPT3.5接口是会根据token个数进行收费的,所以,我们会限制访客消息个数,默认不能超过10条
超过该数量,就返回“对不起,对话消息数量已超过限制”
//调用gpt3.5
func Gpt3dot5Message(entId, visitorId, content string) string {
config := models.GetEntConfigsMap(entId, "chatGPTUrl", "chatGPTSecret")
if content == "" || config["chatGPTSecret"] == "" {
return ""
}
gpt := lib.NewChatGptTool(config["chatGPTUrl"], config["chatGPTSecret"])
gptMessages := []lib.Gpt3Dot5Message{
{
Role: "system",
Content: "你是一个精通开发的资深工程师,熟悉全栈技术,任何问题都难不倒你",
},
}
messages := models.FindMessageByQuery("visitor_id = ?", visitorId)
attr := models.GetVisitorAttrByVisitorId(visitorId, entId)
maxNum := 10
if attr.MaxMessageNum != "" {
maxNum = tools.Str2Int(attr.MaxMessageNum)
}
length := len(messages)
if length > maxNum {
return "对不起,对话消息数量已超过限制"
}
for i := len(messages) - 1; i >= 0; i-- {
reqContent := messages[i].Content
if messages[i].MesType == "visitor" {
gptMessages = append(gptMessages, lib.Gpt3Dot5Message{
Role: "user",
Content: reqContent,
})
} else {
gptMessages = append(gptMessages, lib.Gpt3Dot5Message{
Role: "assistant",
Content: reqContent,
})
}
}
gptMessages = append(gptMessages, lib.Gpt3Dot5Message{
Role: "user",
Content: content,
})
replyContent, err := gpt.ChatGPT3Dot5Turbo(gptMessages)
if err != nil {
log.Println(err)
}
return replyContent
}
相关文章
- Ubuntu20.04 虚拟显示器配置(解决无显示器远程黑屏问题)
- 图解正向代理和反向代理的区别_nginx配置多个正向代理
- Android SDK下载和环境变量配置
- axios配置请求头content-type「建议收藏」
- 学完Nginx/OpenResty详解,反向代理与负载均衡配置,能涨薪多少
- Caddy 2 的安装与配置
- eclipse配置安卓开发环境sdk_Android 设置网络代理
- Burpsuite初步使用,配置网络代理
- Nginx反向代理是什么意思?如何配置Nginx反向代理?
- 万能调试|Python Scrapy框架HTTP代理的配置与调试
- redis.conf 7.0 配置和原理全解,生产王者必备
- 【Android 安全】DEX 加密 ( 代理 Application 开发 | multiple-dex-core 依赖库开发 | 配置元数据 | 获取 apk 文件并准备相关目录 )
- nginx四层代理配置
- 配置Spring Cloud Bus并集成消息代理
- nginx反向代理配置及优化详解架构师
- Oracle 参数 JAVA_MAX_SESSIONSPACE_SIZE 官方解释,作用,如何配置最优化建议
- MySQL集群:如何实现高可用性(mysql集群配置)
- Linux网络配置:学习有线连接的方法(linux有线连接)
- Oracle AWR配置指南步步深入(oracle awr配置)
- 教你将Linux配置为代理防火墙
- 在网关中使用Nginx配置HTTP透明代理案例