|
|
1 ماه پیش | |
|---|---|---|
| .. | ||
| config | 1 ماه پیش | |
| context | 1 ماه پیش | |
| dialog | 1 ماه پیش | |
| encryptor | 1 ماه پیش | |
| README.md | 1 ماه پیش | |
| aispeech.go | 1 ماه پیش | |
| aispeech_test.go | 1 ماه پیش | |
import (
"github.com/silenceper/wechat/v2"
"github.com/silenceper/wechat/v2/aispeech/config"
"github.com/silenceper/wechat/v2/aispeech/dialog"
"github.com/silenceper/wechat/v2/cache"
)
wc := wechat.NewWechat()
memory := cache.NewMemory()
ai := wc.GetAISpeech(&config.Config{
AppID: "xxx",
Token: "xxx",
AESKey: "xxx",
Account: "admin",
Cache: memory,
})
dialogClient := ai.GetDialog()
accessToken, err := dialogClient.GetAccessToken()
if err != nil {
return err
}
res, err := dialogClient.Query(&dialog.QueryRequest{
Query: "你好",
Env: "online",
UserID: "user-1",
})
task, err := dialogClient.ImportJSON(&dialog.ImportJSONRequest{
Mode: 0,
Data: []dialog.BotIntent{{
Skill: "售前咨询",
Intent: "查询营业时间",
Disable: false,
Questions: []string{"你们几点开门", "营业时间是什么时候"},
Answers: []string{"我们的营业时间是周一至周五 9:00-18:00"},
}},
})
if err != nil {
return err
}
asyncResult, err := dialogClient.FetchAsync(&dialog.FetchAsyncRequest{
TaskID: task.TaskID,
})
if err != nil {
return err
}
publish, err := dialogClient.Publish()
if err != nil {
return err
}
progress, err := dialogClient.GetEffectiveProgress(&dialog.EffectiveProgressRequest{
Env: "online",
})
当前封装微信智能对话开放接口中“接入智能对话”的 6 个接口:
POST /v2/tokenPOST /v2/bot/import/jsonPOST /v2/async/fetchPOST /v2/bot/publishPOST /v2/bot/effective_progressPOST /v2/bot/query默认单元测试不会访问真实微信接口。如需验证 token 和 query 只读链路,可设置以下环境变量后运行:
AISPEECH_INTEGRATION=1
AISPEECH_APPID=xxx
AISPEECH_TOKEN=xxx
AISPEECH_AES_KEY=xxx
go test ./aispeech/dialog -run TestIntegrationAccessTokenAndQuery
如需验证导入、异步任务查询、发布、发布进度查询和命中回答的完整链路,可显式开启变更型测试。该测试会导入一个 CodexSmokeTest 临时问答并发布到线上机器人:
AISPEECH_INTEGRATION_MUTATION=1
AISPEECH_APPID=xxx
AISPEECH_TOKEN=xxx
AISPEECH_AES_KEY=xxx
go test ./aispeech/dialog -run TestIntegrationFullDialogFlow -v