Class SpringAIBaiduService

java.lang.Object
com.bytedesk.ai.springai.service.BaseSpringAIService
com.bytedesk.ai.springai.providers.baidu.SpringAIBaiduService
All Implemented Interfaces:
SpringAIService

@Service public class SpringAIBaiduService extends BaseSpringAIService
  • Field Details

  • Constructor Details

    • SpringAIBaiduService

      public SpringAIBaiduService()
  • Method Details

    • createDynamicOptions

      private org.springframework.ai.openai.OpenAiChatOptions createDynamicOptions(RobotLlm llm)
      根据机器人配置创建动态的OpenAiChatOptions
      Parameters:
      llm - 机器人LLM配置
      Returns:
      根据机器人配置创建的选项
    • createBaiduChatModel

      private org.springframework.ai.openai.OpenAiChatModel createBaiduChatModel(RobotLlm llm)
      根据机器人配置创建动态的OpenAiChatModel
      Parameters:
      llm - 机器人LLM配置
      Returns:
      配置了特定模型的OpenAiChatModel
    • processPromptWebsocket

      protected void processPromptWebsocket(org.springframework.ai.chat.prompt.Prompt prompt, RobotProtobuf robot, MessageProtobuf messageProtobufQuery, MessageProtobuf messageProtobufReply, String fullPromptContent)
      Description copied from class: BaseSpringAIService
      Token usage data class
      Specified by:
      processPromptWebsocket in class BaseSpringAIService
    • processPromptSync

      protected String processPromptSync(String message, RobotProtobuf robot, String fullPromptContent)
      Specified by:
      processPromptSync in class BaseSpringAIService
    • processPromptSse

      protected void processPromptSse(org.springframework.ai.chat.prompt.Prompt prompt, RobotProtobuf robot, MessageProtobuf messageProtobufQuery, MessageProtobuf messageProtobufReply, org.springframework.web.servlet.mvc.method.annotation.SseEmitter emitter, String fullPromptContent)
      Specified by:
      processPromptSse in class BaseSpringAIService
    • extractBaiduTokenUsage

      private ChatTokenUsage extractBaiduTokenUsage(org.springframework.ai.chat.model.ChatResponse response)
      专门为百度API提取token使用情况 由于百度API返回的usage字段是EmptyUsage对象,需要特殊处理
      Parameters:
      response - ChatResponse对象
      Returns:
      TokenUsage对象
    • estimateBaiduTokenUsageFromResponse

      private ChatTokenUsage estimateBaiduTokenUsageFromResponse(org.springframework.ai.chat.model.ChatResponse response)
      估算百度API的token使用量(当无法从API获取实际token信息时使用)
      Parameters:
      response - ChatResponse对象
      Returns:
      估算的TokenUsage对象
    • estimateBaiduTokenUsageFromText

      private ChatTokenUsage estimateBaiduTokenUsageFromText(String outputText)
      从完整响应文本估算百度API的token使用量
      Parameters:
      outputText - 完整的输出文本
      Returns:
      估算的TokenUsage对象
    • estimateTokens

      private long estimateTokens(String text)
      估算文本的token数量
      Parameters:
      text - 输入文本
      Returns:
      估算的token数量