59 lines
1.3 KiB
Go
59 lines
1.3 KiB
Go
package service
|
|
|
|
import (
|
|
"fmt"
|
|
"qd-sc/internal/client"
|
|
"qd-sc/internal/config"
|
|
"qd-sc/internal/model"
|
|
)
|
|
|
|
// PolicyService 政策咨询服务
|
|
type PolicyService struct {
|
|
policyClient *client.PolicyClient
|
|
}
|
|
|
|
// NewPolicyService 创建政策咨询服务
|
|
func NewPolicyService(cfg *config.Config) *PolicyService {
|
|
return &PolicyService{
|
|
policyClient: client.NewPolicyClient(cfg),
|
|
}
|
|
}
|
|
|
|
// QueryPolicy 查询政策信息
|
|
func (s *PolicyService) QueryPolicy(
|
|
message string,
|
|
chatID string,
|
|
conversationID string,
|
|
realName bool,
|
|
aac001 string,
|
|
aac147 string,
|
|
aac003 string,
|
|
) (string, string, string, error) {
|
|
// 构建请求
|
|
chatReq := &model.PolicyChatData{
|
|
ChatID: chatID,
|
|
ConversationID: conversationID,
|
|
Stream: false,
|
|
RealName: realName,
|
|
Message: message,
|
|
MegType: "MESSAGE",
|
|
AAC001: aac001,
|
|
AAC147: aac147,
|
|
AAC003: aac003,
|
|
ReqType: "1", // 1表示政策咨询
|
|
}
|
|
|
|
// 调用政策大模型接口
|
|
resp, err := s.policyClient.Chat(chatReq)
|
|
if err != nil {
|
|
return "", "", "", fmt.Errorf("政策咨询失败: %w", err)
|
|
}
|
|
|
|
if resp.Data == nil {
|
|
return "", "", "", fmt.Errorf("政策咨询返回数据为空")
|
|
}
|
|
|
|
// 返回消息内容、chatID和conversationID供下次调用使用
|
|
return resp.Data.Message, resp.Data.ChatID, resp.Data.ConversationID, nil
|
|
}
|