n8n+qwen2.5实现:AI智能打版助理

在办公沟通软件WOA中,通过自然语言实现Jenkins打版项目自动识别和调用,让AI像是一个助理一样干活。

实现核心思路

  • 聊天工具(微信,飞书等,WOA是公司内部聊天工具),通过智能聊天机器人的api接口,进行消息转发
  • Python编写api转发程序,实现多机器人管理,并把消息转发n8n,也可以直接把消息转发n8n。
  • n8n使用AI Agent+LLM大模型(qwen2.5-72b:测试效果最好的支持tools调用的大模型)实现聊天对话调用jenkins打版。

示例效果

1. 执行Jenkins打版任务:

在这里插入图片描述

2. 查询SVN最近提交记录:

在这里插入图片描述

实现方案:

核心:N8N

使用大模型qwen2.5-72b + AI Agent打造《打版AI助理》,通过自然语言,调用对应的Jenkins,实现打版。
在这里插入图片描述

聊天工具WOA机器人消息转发程序,使用Python程序编写

具体可以根据不同的程序,自己编写即可,可以接入微信,飞书等等。这里仅展示我编写的后台

<think>嗯,用户问的是为什么在Spring AI的Ollama Starter 1.0.0-M6本加上Qwen2.5-7B模型后,添加了工具调用(tool calling)功能后,流式输出就不工作了。我需要先理解这个问题的大致背景。 首先,Spring AI是Spring生态系统中的一个项目,可能用于集成AI模型到应用中。Ollama应该是一个支持本地运行大模型的工具,比如像Llama这样的模型。用户用的本是M6,可能还在开发阶段,所以可能存在一些不稳定因素。 用户提到的Qwen2.5-7B是通义千问的一个7B参数的模型,可能通过Ollama来部署。然后他们添加了工具调用功能,之后流式输出失效了。工具调用通常指的是让模型能够调用外部工具或API,比如函数调用,这在OpenAI的API中有类似功能。可能Spring AI的Ollama模块支持这样的功能。 接下来,流式输出通常是指数据分块传输,逐步返回结果,而不是一次性返回所有内容。当用户启用工具调用后,流式输出停止工作,可能是因为工具调用和流式处理在实现上有冲突。 我需要考虑可能的原因。首先,是否工具调用和流式输出在Ollama或Spring AI的当前本中不兼容?比如,当模型被配置为使用工具调用时,是否必须等待完整的响应才能解析工具调用的参数,从而无法流式传输?或者可能是Spring AI在处理工具调用时,强制使用了同步请求,而禁用了流式传输? 另外,可能涉及到模型本身的问题。Qwen2.5-7B在处理工具调用时,是否必须以非流式的方式响应?或者Ollama在启用某些功能时,是否关闭了流式传输的支持? 还有可能是Spring AI的库在处理工具调用时,没有正确传递流式参数,或者在处理响应时,即使请求是流式的,但工具调用的解析逻辑需要完整的响应体,导致无法流式输出。 另一个角度是配置问题。用户可能在添加工具调用时,修改了某些配置,比如关闭了流式选项,或者触发了某种默认行为的变化。比如,工具调用可能默认要求同步处理,因此Spring AI内部可能切换到了非流式请求。 也可能是一个Bug。因为用户使用的是M6本,属于里程碑本,可能存在未解决的缺陷。在GitHub的issue中,可能已经有类似的问题报告,或者需要用户检查日志、文档来确认。 可能的解决步骤包括:检查Ollama和Spring AI的文档,确认工具调用是否支持流式;查看是否需要在请求中显式启用流式;查看日志是否有错误信息;尝试在工具调用的情况下手动启用流式参数;或者联系社区看是否有已知问题。 总结可能的原因:1. 工具调用和流式处理在实现上的不兼容;2. 配置错误或默认行为变更;3. 库或模型的Bug。</think>在 Spring AI 的 `spring-ai-ollama-spring-boot-starter`(1.0.0-M6)中,结合 Qwen2.5-7B 模型添加 Tool Calling 功能后流式输出失效的问题,通常与以下原因相关: --- ### **1. Tool Calling 与流式响应的机制冲突** - **Tool Calling 的实现逻辑**: 当模型启用 Tool Calling(工具调用)时,模型需要生成结构化响应(如 JSON 格式的函数参数),而流式输出(逐块返回结果)可能无法保证结构化数据的完整性。Ollama 或 Spring AI 可能在检测到 Tool Calling 需求时,**强制切换为同步请求**,以确保返回的数据能被正确解析。 - **Qwen2.5-7B 的限制**: 某些模型在输出结构化内容(如 JSON)时,可能无法支持分块流式传输,必须一次性生成完整结果。Qwen2.5-7B 可能在 Tool Calling 模式下默认关闭了流式能力。 --- ### **2. Spring AI实现限制** - **当前本的兼容性**: `1.0.0-M6` 是里程碑本,可能存在未完善的特性。Spring AI 对 Tool Calling 的支持可能尚未完全适配流式场景,代码逻辑可能强制使用非流式请求(如底层调用 Ollama API 时未传递 `stream: true` 参数)。 - **响应解析逻辑冲突**: Spring AI 在解析 Tool Calling 的响应时,可能需要完整的响应体来提取结构化数据(如函数名称、参数),而流式处理的分块响应可能导致解析失败,因此框架可能自动禁用流式。 --- ### **3. 配置或代码问题** - **显式关闭流式**: 添加 Tool Calling 时,可能无意中覆盖了流式配置(例如,在 `OllamaApi` 或 `ChatClient` 的设置中,`stream` 参数被设为 `false`)。 - **依赖本冲突**: Ollama 或 Spring AI 的依赖本不兼容(例如,低本 Ollama 服务端对 Tool Calling 的流式支持存在缺陷)。 --- ### **排查与解决方法** 1. **检查文档与本**: - 确认 Ollama 服务端本是否支持 Tool Calling 的流式输出。 - 查看 Spring AI 官方文档或 GitHub Issue,确认是否为已知限制(例如 [Spring AI #1234](https://github.com/spring-projects/spring-ai/issues))。 2. **调试请求参数**: 在代码中手动设置流式参数,确保请求明确启用流式: ```java OllamaOptions options = OllamaOptions.create() .withStream(true); // 强制启用流式 ``` 3. **日志分析**: 启用 Spring AI 的调试日志,观察 Ollama 请求的实际参数和响应格式,确认是否因 Tool Calling 导致请求从 `stream: true` 变为 `stream: false`。 4. **简化场景测试**: - 在不启用 Tool Calling 时,验证流式是否正常工作。 - 使用其他模型(如 Llama3)测试相同场景,确认是否为 Qwen2.5-7B 的特定问题。 5. **临时解决方案**: 如果流式是必需功能,暂时回退到非 Tool Calling 实现,或等待 Spring AI 的后续本修复。 --- ### **总结** 根本原因可能是 Spring AI 在 Tool Calling 场景下强制禁用了流式,或 Qwen2.5-7B 模型的结构化输出与流式传输不兼容。建议优先通过日志验证请求参数,并关注 Spring AI本更新(如升级到更新的里程碑本)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值