12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- package aiser
- import (
- "encoding/json"
- "errors"
- "eta/eta_api/models/aimod"
- "eta/eta_api/utils"
- "io/ioutil"
- "net/http"
- "strings"
- "time"
- )
- func ChatAutoMsg(prompt string, historyChatList []aimod.HistoryChat) (result string, err error) {
- chatUrl := utils.EtaAiUrl + `chat/auto_msg`
- param := make(map[string]interface{})
- param["Prompt"] = prompt
- param["HistoryChatList"] = historyChatList
- postData, err := json.Marshal(param)
- if err != nil {
- return result, err
- }
- client := &http.Client{}
- //提交请求
- reqest, err := http.NewRequest("POST", chatUrl, strings.NewReader(string(postData)))
- businessCode := utils.BusinessCode
- if businessCode == "" {
- return businessCode, errors.New("未获取到商户号")
- }
- nonce := utils.GetRandStringNoSpecialChar(16)
- timestamp := time.Now().Format(utils.FormatDateTimeUnSpace)
- signature := utils.GetSign(nonce, timestamp, utils.EtaAppid, utils.EtaSecret)
- //增加header选项
- reqest.Header.Add("BusinessCode", businessCode)
- reqest.Header.Add("Nonce", nonce)
- reqest.Header.Add("Timestamp", timestamp)
- reqest.Header.Add("Appid", utils.EtaAppid)
- reqest.Header.Add("Signature", signature)
- reqest.Header.Set("Content-Type", "application/json")
- utils.FileLog.Info("postData:" + string(postData))
- response, err := client.Do(reqest)
- if err != nil {
- return
- }
- defer response.Body.Close()
- body, err := ioutil.ReadAll(response.Body)
- utils.FileLog.Info("result:" + string(body))
- resp := new(ChatAutoMsgResp)
- err = json.Unmarshal(body, &resp)
- if err != nil {
- return result, err
- }
- if resp.Ret != 200 {
- return resp.Msg, nil
- }
- result = resp.Data
- return result, nil
- }
- type ChatAutoMsgResp struct {
- Ret int
- Data string
- Msg string
- }
|