随笔分类 - 15.Java/Scala
摘要:
继续我们的langchain4j学习之旅,很多“智能客服”之类的AI应用,“问题分类”是非常重要的功能之一。比如:客人进来咨询问题,得判断出客人的问题是“订单相关”(比如:我要取消订单),还是“支付相关”(比如:我要退款),还是“投诉相关”(比如:你们的服务太差了,我要投诉到相关部门)。识别出对应分
阅读全文
继续我们的langchain4j学习之旅,很多“智能客服”之类的AI应用,“问题分类”是非常重要的功能之一。比如:客人进来咨询问题,得判断出客人的问题是“订单相关”(比如:我要取消订单),还是“支付相关”(比如:我要退款),还是“投诉相关”(比如:你们的服务太差了,我要投诉到相关部门)。识别出对应分
阅读全文
摘要:
继续学习langchain4j,玩过dify的朋友想必对"参数提取器"这个节点很熟悉,示例: 参数提取器可以很方便的从“非结构的自然语言”中,提取出结构化的结果。 下面来看看langchain4j如何实现类似功能: public static final String TEST_DATA = """
阅读全文
继续学习langchain4j,玩过dify的朋友想必对"参数提取器"这个节点很熟悉,示例: 参数提取器可以很方便的从“非结构的自然语言”中,提取出结构化的结果。 下面来看看langchain4j如何实现类似功能: public static final String TEST_DATA = """
阅读全文
摘要:
继续我们的langchain4j之旅,今天来看看RAG如何实现,“RAG萌宠新手盆友们”建议先看看B站大佬的视频RAG 工作机制详解—哔哩哔哩_bilibili,核心步骤就是下面这3张图: 最简单的RAG hello-world1、分片/索引 这里embedding模型,我们用ollamal加载“n
阅读全文
继续我们的langchain4j之旅,今天来看看RAG如何实现,“RAG萌宠新手盆友们”建议先看看B站大佬的视频RAG 工作机制详解—哔哩哔哩_bilibili,核心步骤就是下面这3张图: 最简单的RAG hello-world1、分片/索引 这里embedding模型,我们用ollamal加载“n
阅读全文
摘要:
继续学习langchain4j,以下是langchain4j 调用MCP的示例: 1、添加pom依赖 1 <dependency> 2 <groupId>dev.langchain4j</groupId> 3 <artifactId>langchain4j-mcp</artifactId> 4 <v
阅读全文
继续学习langchain4j,以下是langchain4j 调用MCP的示例: 1、添加pom依赖 1 <dependency> 2 <groupId>dev.langchain4j</groupId> 3 <artifactId>langchain4j-mcp</artifactId> 4 <v
阅读全文
摘要:
众所周知,cursor是基于vs code魔改的一个独立应用,并不象copilot、通义灵码 这类采用plugin机制的AI辅助编码工具。在cursor-cli 与 idea MCP出来之前,只能通过idea里安装 Switch2Cursor Plugin for JetBrains IDEs |
阅读全文
众所周知,cursor是基于vs code魔改的一个独立应用,并不象copilot、通义灵码 这类采用plugin机制的AI辅助编码工具。在cursor-cli 与 idea MCP出来之前,只能通过idea里安装 Switch2Cursor Plugin for JetBrains IDEs |
阅读全文
摘要:
虚拟线程是一个非常有用的特性,但是JDK25以前,一直存在pinned问题,一些场景下会导致平台线程被占用无法释放。 比如下面的代码,在JDK 21下运行时,会卡住: import java.time.Duration; import java.util.concurrent.Executors;
阅读全文
虚拟线程是一个非常有用的特性,但是JDK25以前,一直存在pinned问题,一些场景下会导致平台线程被占用无法释放。 比如下面的代码,在JDK 21下运行时,会卡住: import java.time.Duration; import java.util.concurrent.Executors;
阅读全文
摘要:
大模型本身的”知识体系“一般来说,局限于受训练时使用的数据。超出这个数据范围的问题,靠模型自身是无法解答的,得依赖各种外挂工具来增强体验。参考下图: 这一节,我们来学习langchain4j 如何让大模型能利用工具外挂增强自身。 假设一个场景:输入1个订单号,让AI回答订单号现在的状态。 AI连是什
阅读全文
大模型本身的”知识体系“一般来说,局限于受训练时使用的数据。超出这个数据范围的问题,靠模型自身是无法解答的,得依赖各种外挂工具来增强体验。参考下图: 这一节,我们来学习langchain4j 如何让大模型能利用工具外挂增强自身。 假设一个场景:输入1个订单号,让AI回答订单号现在的状态。 AI连是什
阅读全文
摘要:
接上一篇继续,langchain4j支持open-ai兼容的各种模式,包括deepseek 一、修改pom依赖 1 <!-- LongChain4j OpenAI Integration (支持DeepSeek) --> 2 <dependency> 3 <groupId>dev.langchain
阅读全文
接上一篇继续,langchain4j支持open-ai兼容的各种模式,包括deepseek 一、修改pom依赖 1 <!-- LongChain4j OpenAI Integration (支持DeepSeek) --> 2 <dependency> 3 <groupId>dev.langchain
阅读全文
摘要:
langchain4j是比spring-ai更早出现的大模型相关工程开源框架,社区成熟,活跃度高。下面演示如何用langchain4j调用本地ollama 一、核心pom依赖 1 <!-- LongChain4j Core --> 2 <dependency> 3 <groupId>dev.lang
阅读全文
langchain4j是比spring-ai更早出现的大模型相关工程开源框架,社区成熟,活跃度高。下面演示如何用langchain4j调用本地ollama 一、核心pom依赖 1 <!-- LongChain4j Core --> 2 <dependency> 3 <groupId>dev.lang
阅读全文
摘要:
继续spring-ai学习之旅,大模型本身是无状态的,也就是每次请求对它来说,都是全新的,无记忆!比如:我们以ollama本地加载qwen3:0.6b模型为例,依次问它以下三个问题: 有1个变量A,它的值是5,那么A加1后,变成几? A再乘上3,结果是多少? A再减1,现在是多少? 直接用postm
阅读全文
继续spring-ai学习之旅,大模型本身是无状态的,也就是每次请求对它来说,都是全新的,无记忆!比如:我们以ollama本地加载qwen3:0.6b模型为例,依次问它以下三个问题: 有1个变量A,它的值是5,那么A加1后,变成几? A再乘上3,结果是多少? A再减1,现在是多少? 直接用postm
阅读全文
摘要:
继续来学习spring-ai如何实现“文生图” 一、pom依赖 1 <dependency> 2 <groupId>org.springframework.ai</groupId> 3 <artifactId>spring-ai-starter-model-zhipuai</artifactId>
阅读全文
继续来学习spring-ai如何实现“文生图” 一、pom依赖 1 <dependency> 2 <groupId>org.springframework.ai</groupId> 3 <artifactId>spring-ai-starter-model-zhipuai</artifactId>
阅读全文
摘要:
前面学习了stdio模式的MCP使用,可以看到这种方式局限性比较大,mcp host/mcp client/mcp server通常要在同1台机器上,使用进程间通讯。更常见的做法是,大家各自部署自己的mcp server,就象常规后端http api一样,想部署在哪都行,只要http能访问即可。 一
阅读全文
前面学习了stdio模式的MCP使用,可以看到这种方式局限性比较大,mcp host/mcp client/mcp server通常要在同1台机器上,使用进程间通讯。更常见的做法是,大家各自部署自己的mcp server,就象常规后端http api一样,想部署在哪都行,只要http能访问即可。 一
阅读全文
摘要:
上一节,通过1个最基本的MCP Server/Client示例,初步了解了MCP的用法.STDIO模式下,client与server同在1台机器上,client会创建1个子进程来启动server,然后使用json rpc来做为约定的消息格式进行通讯。 如果想知道交互过程中的json原文,可以下载 h
阅读全文
上一节,通过1个最基本的MCP Server/Client示例,初步了解了MCP的用法.STDIO模式下,client与server同在1台机器上,client会创建1个子进程来启动server,然后使用json rpc来做为约定的消息格式进行通讯。 如果想知道交互过程中的json原文,可以下载 h
阅读全文
摘要:
使用spring-ai创建1个MCP Server很容易,下面演示MCP(stdio模式)的写法: 一、添加依赖项 1 <dependency> 2 <groupId>org.springframework.ai</groupId> 3 <artifactId>spring-ai-starter-m
阅读全文
使用spring-ai创建1个MCP Server很容易,下面演示MCP(stdio模式)的写法: 一、添加依赖项 1 <dependency> 2 <groupId>org.springframework.ai</groupId> 3 <artifactId>spring-ai-starter-m
阅读全文
摘要:
上一节学习了spring-ai调用本地ollama,这次继续学习调用远程deepseek 一、pom依赖调整 加入openai的依赖 1 <dependency> 2 <groupId>group.springframework.ai</groupId> 3 <artifactId>spring-a
阅读全文
上一节学习了spring-ai调用本地ollama,这次继续学习调用远程deepseek 一、pom依赖调整 加入openai的依赖 1 <dependency> 2 <groupId>group.springframework.ai</groupId> 3 <artifactId>spring-a
阅读全文
摘要:
spring-ai框架为java程序员快速融入AI大潮提供了便利,下面演示如何调用本地deepseek模型 一、安装ollama https://www.ollama.com/ 首页下载安装即可 选择适合的模型,pull到本地,个人电脑建议选择deepseek-r1:7b或1.5b 启动模型 oll
阅读全文
spring-ai框架为java程序员快速融入AI大潮提供了便利,下面演示如何调用本地deepseek模型 一、安装ollama https://www.ollama.com/ 首页下载安装即可 选择适合的模型,pull到本地,个人电脑建议选择deepseek-r1:7b或1.5b 启动模型 oll
阅读全文
摘要:
今天尝试用cursor全自助生成了1个spring boot调用ollama(本地模型) +远程deepseek的示例项目。 效果图: .. 主要特性(摘自Readme.md,其实也是 Cursor生成的) 🎯 项目特色 🤖 双AI支持: 同时支持本地Ollama和远程DeepSeek两种AI提
阅读全文
今天尝试用cursor全自助生成了1个spring boot调用ollama(本地模型) +远程deepseek的示例项目。 效果图: .. 主要特性(摘自Readme.md,其实也是 Cursor生成的) 🎯 项目特色 🤖 双AI支持: 同时支持本地Ollama和远程DeepSeek两种AI提
阅读全文
摘要:
为方便讨论,假设有下面2张订单表:t_order_vip(用于存放VIP的订单),t_order_normal(用于存放普通用户的订单) -- 注:为了演示自定义分片算法而设想的场景,大家不必太纠结其真实性。 分片规则:根据user_id,假设user_id为1,2,3的为VIP用户,其它id为普通
阅读全文
为方便讨论,假设有下面2张订单表:t_order_vip(用于存放VIP的订单),t_order_normal(用于存放普通用户的订单) -- 注:为了演示自定义分片算法而设想的场景,大家不必太纠结其真实性。 分片规则:根据user_id,假设user_id为1,2,3的为VIP用户,其它id为普通
阅读全文
摘要:
本文用一个订单提交的示例,描述了如何在使用虚拟线程时,合理控制执行的并发数,防止把下游资源打爆
阅读全文
本文用一个订单提交的示例,描述了如何在使用虚拟线程时,合理控制执行的并发数,防止把下游资源打爆
阅读全文
摘要:
1. cookie有2个版本(version 0与version 1),version 0最早是网景公司定的,比较保守,value值不能有特殊字符,比如 冒号之类的,象 GMT+05:30,在version 0下,取出来,就变成GMT+05,冒号后的:30丢了 2. java中目前支持的是 vers
阅读全文
1. cookie有2个版本(version 0与version 1),version 0最早是网景公司定的,比较保守,value值不能有特殊字符,比如 冒号之类的,象 GMT+05:30,在version 0下,取出来,就变成GMT+05,冒号后的:30丢了 2. java中目前支持的是 vers
阅读全文
浙公网安备 33010602011771号