Class N8nChatService

java.lang.Object
com.bytedesk.ai.springai.providers.n8n.N8nChatService

@Service @ConditionalOnProperty(name="bytedesk.n8n.enabled", havingValue="true", matchIfMissing=false) public class N8nChatService extends Object
N8N Chat Service - 基于 N8N API 的对话服务 https://n8n.io/docs/dev/http_api_reference
  • Field Details

    • restTemplate

      private final org.springframework.web.client.RestTemplate restTemplate
    • objectMapper

      private final com.fasterxml.jackson.databind.ObjectMapper objectMapper
    • apiUrl

      @Value("${bytedesk.n8n.api-url:http://localhost:9380}") private String apiUrl
    • apiKey

      @Value("${bytedesk.n8n.api-key}") private String apiKey
  • Constructor Details

    • N8nChatService

      public N8nChatService()
  • Method Details

    • createChatCompletion

      public String createChatCompletion(String chatId, String model, List<Map<String,Object>> messages, Boolean stream)
      创建聊天完成 - OpenAI 兼容 API
      Parameters:
      chatId - 聊天ID
      model - 模型名称
      messages - 消息列表
      stream - 是否流式响应
      Returns:
      API响应
    • createAgentCompletion

      public String createAgentCompletion(String agentId, String model, List<Map<String,Object>> messages, Boolean stream)
      创建代理完成 - OpenAI 兼容 API
      Parameters:
      agentId - 代理ID
      model - 模型名称
      messages - 消息列表
      stream - 是否流式响应
      Returns:
      API响应
    • sendMessage

      public String sendMessage(String chatId, String content, Boolean stream)
      发送简单对话消息
      Parameters:
      chatId - 聊天ID
      content - 消息内容
      stream - 是否流式响应
      Returns:
      API响应
    • sendAgentMessage

      public String sendAgentMessage(String agentId, String content, Boolean stream)
      发送代理消息
      Parameters:
      agentId - 代理ID
      content - 消息内容
      stream - 是否流式响应
      Returns:
      API响应
    • extractMessageContent

      public String extractMessageContent(String response)
      解析响应中的消息内容(非流式)
      Parameters:
      response - API响应
      Returns:
      消息内容
    • extractFinishReason

      public String extractFinishReason(String response)
      解析响应中的完成原因
      Parameters:
      response - API响应
      Returns:
      完成原因
    • extractUsage

      public Map<String,Object> extractUsage(String response)
      解析响应中的使用情况
      Parameters:
      response - API响应
      Returns:
      使用情况
    • isError

      public boolean isError(String response)
      检查响应是否出错
      Parameters:
      response - API响应
      Returns:
      是否出错
    • getErrorMessage

      public String getErrorMessage(String response)
      获取错误信息
      Parameters:
      response - API响应
      Returns:
      错误信息
    • getErrorCode

      public int getErrorCode(String response)
      获取错误代码
      Parameters:
      response - API响应
      Returns:
      错误代码