为在线客服系统接入chatGPT(三):通过chatGPT接口,开发自己的智能聊天机器人,附代码
通过前面两篇我们已经能够知道通过接口获取chatGPT的内容了
下面这个是服务端调用chatGPT接口的代码案例:
package lib
import (
"fmt"
"kefu/tools"
"log"
)
type ChatGptTool struct {
Secret string
}
func (this *ChatGptTool) Chat(content string) {
format := `
{
"prompt": "%s",
"max_tokens": 2048,
"model": "text-davinci-003"
}
`
url := "https://api.openai.com/v1/completions"
req := fmt.Sprintf(format, content)
headers := make(map[string]string)
headers["Content-Type"] = "application/json;charset=utf-8"
headers["Authorization"] = fmt.Sprintf("Bearer %s", this.Secret)
res, err := tools.PostHeader(url, []byte(req), headers)
log.Println(url, req, err, res)
}
post请求的工具函数
func PostHeader(url string, msg []byte, headers map[string]string) (string, error) {
client := &http.Client{}
req, err := http.NewRequest("POST", url, strings.NewReader(string(msg)))
if err != nil {
return "", err
}
for key, header := range headers {
req.Header.Set(key, header)
}
resp, err := client.Do(req)
if err != nil {
return "", err
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
return "", err
}
return string(body), nil
}
使用的前提是需要有chatGPT的账号去获取apikey,然后把拿到的apikey放在下面代码中
例如下面的测试用例:
package lib
import (
"testing"
)
func TestChatGptTool_Chat(t *testing.T) {
gpt := &ChatGptTool{
Secret: "密钥",
}
gpt.Chat("请生成一篇800字的在线客服系统介绍")
}
响应以下内容
{"id":"cmpl-6gx2uMVHglAytv56TJi9KZscm9d7c","object":"text_completion","created":1675694768,"model":"text-davinci-003","choices":[{"text":"\n\n在线客服系统是一个为改善客户体验而设计的重要工具,它可以帮助企业管理客户和客服沟通 交流。在线客服系统是一个可以提高企业服务质量以及品牌知名度的有效手段。它可以让客户在手机浏览器或者PC端搜索客服信息,通过在线客服沟通来获取相关咨询。\n\n在线客服系统是企业重要的客服工具之一。它可以将客服操作由人力改为自动化,大大降低 企业的人力投入,从而提高企业的营销效率。同时,自动化的客服系统可以在客服查询时及时地回复,确保服务的及时性和质量的提升。\n\n作为企业的在线客服系统,它通常由话机、IM系统、短信等多种通讯渠道组成。通过让客户能够使用多个渠道连接,即使客 服人员不在线,客户也能够快速解决问题。同时,企业也可以通过这个系统来处理客服和投诉。\n\n随着技术的发展,在线客服系统也在不断完善,凭借其丰富的技术特性,它将成为企业提高客户体验的有力工具之一。通过强大的系统、流程和优化功能,客户可以 在系统中实现主动的,反应迅捷的客服服务,从而更有效地满足客户的实时需求。此外,在线客服系统也将有助于企业提高服务及时性和客户满意度,为企业赢得更多收益。\n\n当今,众多企业已经采用在线客服系统,以提高其服务效率以及客户满意度。它可以满 足不同领域的企业的服务需求,为客户创造一个舒适的沟通场景,大大提高企业的服务质量,为企业赢得更多收益。","index":0,"logprobs":null,"finish_reason":"stop"}],"usage":{"prompt_tokens":33,"completion_tokens":1183,"total_tokens":1216}}
相关文章
- 在 Go 里用 CGO?这 7 个问题你要关注!
- 9款优秀的去中心化通讯软件 Matrix 的客户端
- 求职数据分析,项目经验该怎么写
- 在OKR中,我看到了数据驱动业务的未来
- 火山引擎云原生大数据在金融行业的实践
- OpenHarmony富设备移植指南(二)—从postmarketOS获取移植资源
- 《数据成熟度指数》报告:64%的企业领袖认为大多数员工“不懂数据”
- OpenHarmony 小型系统兼容性测试指南
- 肯睿中国(Cloudera):2023年企业数字战略三大趋势预测
- 适用于 Linux 的十大命令行游戏
- GNOME 截图工具的新旧截图方式
- System76 即将推出的 COSMIC 桌面正在酝酿大变化
- 2GB 内存 8GB 存储即可流畅运行,Windows 11 极致精简版系统 Tiny11 发布
- 迎接 ecode:一个即将推出的具有全新图形用户界面框架的现代、轻量级代码编辑器
- loongarch架构介绍(三)—地址翻译
- Go 语言怎么解决编译器错误“err is shadowed during return”?
- 敏捷:可能被开发人员遗忘的部分
- Denodo预测2023年数据管理和分析的未来
- 利用数据推动可持续发展
- 在 Vue3 中实现 React 原生 Hooks(useState、useEffect),深入理解 React Hooks 的