ai.go 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. package aiser
  2. import (
  3. "encoding/json"
  4. "eta/eta_api/utils"
  5. "io/ioutil"
  6. "net/http"
  7. "strings"
  8. "time"
  9. )
  10. func ChatAutoMsg(prompt string) (result string, err error) {
  11. chatUrl := utils.EtaAiUrl + `chat/auto_msg`
  12. param := make(map[string]interface{})
  13. param["Prompt"] = prompt
  14. postData, err := json.Marshal(param)
  15. if err != nil {
  16. return result, err
  17. }
  18. client := &http.Client{}
  19. //提交请求
  20. reqest, err := http.NewRequest("POST", chatUrl, strings.NewReader(string(postData)))
  21. businessCode := utils.BusinessCode
  22. nonce := utils.GetRandStringNoSpecialChar(16)
  23. timestamp := time.Now().Format(utils.FormatDateTimeUnSpace)
  24. signature := utils.GetSign(nonce, timestamp, utils.EtaAppid, utils.EtaSecret)
  25. //增加header选项
  26. reqest.Header.Add("business_code", businessCode)
  27. reqest.Header.Add("nonce", nonce)
  28. reqest.Header.Add("timestamp", timestamp)
  29. reqest.Header.Add("appid", utils.EtaAppid)
  30. reqest.Header.Add("signature", signature)
  31. reqest.Header.Set("Content-Type", "application/json")
  32. utils.FileLog.Info("postData:" + string(postData))
  33. response, err := client.Do(reqest)
  34. if err != nil {
  35. return
  36. }
  37. defer response.Body.Close()
  38. body, err := ioutil.ReadAll(response.Body)
  39. utils.FileLog.Info("result:" + string(body))
  40. resp := new(ChatAutoMsgResp)
  41. err = json.Unmarshal(body, &resp)
  42. if err != nil {
  43. return result, err
  44. }
  45. if resp.Ret != 200 {
  46. return resp.Msg, nil
  47. }
  48. result = resp.Data
  49. return result, nil
  50. }
  51. type ChatAutoMsgResp struct {
  52. Ret int
  53. Data string
  54. Msg string
  55. }