Files
ai_job_chat_agent/internal/service/policy_service.go
2026-01-12 11:33:43 +08:00

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
}