通过前面两篇我们已经能够知道通过接口获取chatGPT的内容了
下面这个是服务端调用chatGPT接口的代码案例:
package libimport ( "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 libimport ( "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":"nn在线客服系统是一个为改善客户体验而设计的重要工具,它可以帮助企业管理客户和客服沟通交流。在线客服系统是一个可以提高企业服务质量以及品牌知名度的有效手段。它可以让客户在手机浏览器或者PC端搜索客服信息,通过在线客服沟通来获取相关咨询。nn在线客服系统是企业重要的客服工具之一。它可以将客服操作由人力改为自动化,大大降低企业的人力投入,从而提高企业的营销效率。同时,自动化的客服系统可以在客服查询时及时地回复,确保服务的及时性和质量的提升。nn作为企业的在线客服系统,它通常由话机、IM系统、短信等多种通讯渠道组成。通过让客户能够使用多个渠道连接,即使客服人员不在线,客户也能够快速解决问题。同时,企业也可以通过这个系统来处理客服和投诉。nn随着技术的发展,在线客服系统也在不断完善,凭借其丰富的技术特性,它将成为企业提高客户体验的有力工具之一。通过强大的系统、流程和优化功能,客户可以在系统中实现主动的,反应迅捷的客服服务,从而更有效地满足客户的实时需求。此外,在线客服系统也将有助于企业提高服务及时性和客户满意度,为企业赢得更多收益。nn当今,众多企业已经采用在线客服系统,以提高其服务效率以及客户满意度。它可以满足不同领域的企业的服务需求,为客户创造一个舒适的沟通场景,大大提高企业的服务质量,为企业赢得更多收益。","index":0,"logprobs":null,"finish_reason":"stop"}],"usage":{"prompt_tokens":33,"completion_tokens":1183,"total_tokens":1216}}