12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- package util
- import (
- "errors"
- "fmt"
- "log"
- . "KeyWebsiteMonitor/spider/types"
- "strings"
- zhipu "github.com/itcwc/go-zhipu/model_api"
- )
- const (
- MODEL_NAME = "glm-4-flash" //"glm-4-air"
- )
- var (
- expireAtTime = int64(1719803252) // token 过期时间
- apiKey = "f9b31ce331199197f0e089725355155d.h2nSVVikN1kb4Xwr"
- )
- // UpdateResultDateStr
- func UpdateResultDateStr(rs ResultItems) (err error) {
- tmp := make([]string, len(rs))
- for i, v := range rs {
- tmp[i] = v.ListPubTime
- }
- prompt := fmt.Sprintf(`根据我提供的内容,识别每行文本中的日期,按照YYYY-MM-DD形式输出,如:2024-01-01;找不到日期数据,输出NULL。不要联网,不要解释,不要说明,直接输出结果。
- ---------------------------
- %s
- `, strings.Join(tmp, "\n"))
- mssage := zhipu.PostParams{
- Model: MODEL_NAME,
- Messages: []zhipu.Message{
- {
- Role: "user", // 消息的角色信息 详见文档
- Content: prompt, // 消息内容
- },
- },
- }
- postResponse, err := zhipu.BeCommonModel(expireAtTime, mssage, apiKey)
- if err != nil {
- return err
- }
- //解析数据
- choices, _ := postResponse["choices"].([]interface{})
- obj, _ := choices[0].(map[string]interface{})
- message, _ := obj["message"].(map[string]interface{})
- value, _ := message["content"].(string)
- log.Println("提示语", prompt)
- log.Println("AI调用结果", value)
- results := strings.Split(value, "\n")
- if len(results) < len(rs) {
- err = errors.New("调用大模型失败")
- return
- }
- //更新
- for i, v := range rs {
- if results[i] != "NULL" {
- v.ListPubTime = results[i]
- } else {
- v.ListPubTime = ""
- }
- }
- return nil
- }
- // Question
- func Question(prompt string) (ret interface{}, err error) {
- mssage := zhipu.PostParams{
- Model: MODEL_NAME,
- Messages: []zhipu.Message{
- {
- Role: "user", // 消息的角色信息 详见文档
- Content: prompt, // 消息内容
- },
- },
- }
- postResponse, err := zhipu.BeCommonModel(expireAtTime, mssage, apiKey)
- if err != nil {
- return nil, err
- }
- //解析数据
- choices, _ := postResponse["choices"].([]interface{})
- obj, _ := choices[0].(map[string]interface{})
- message, _ := obj["message"].(map[string]interface{})
- value := message["content"]
- return value, nil
- }
|