聊聊Spring AI的Prompt

4 月 13 日
阅读 11 分钟
48
Prompt实现了ModelRequest方法,其getInstructions返回的类型为List<Message>,其getContents方法遍历getInstructions添加message.getText()

聊聊Spring AI的Multimodality

4 月 12 日
阅读 7 分钟
161
序本文主要研究一下Spring AI的Multimodality示例chatModel示例 {代码...} chatClient示例 {代码...} 目前是如下几种模型支持多模态Anthropic Claude 3AWS Bedrock ConverseAzure Open AI (e.g. GPT-4o models)Mistral AI (e.g. Mistral Pixtral models)Ollama (e.g. LLaVA, BakLLaVA, Llama3.2 models)OpenAI (e.g. GPT...

聊聊Spring AI的Tool Calling

4 月 11 日
阅读 29 分钟
225
ToolCallback继承了FunctionCallback接口,不过FunctionCallback接口即将被废弃,它主要定义了getToolDefinition、getToolMetadata、call方法,它两个基本实现,分别是MethodToolCallback、FunctionToolCallback

聊聊Spring AI的StructuredOutputConverter

4 月 10 日
阅读 14 分钟
178
StructuredOutputConverter接口继承了Converter、FormatProvider接口,它有两个抽象类,分别是AbstractMessageOutputConverter、AbstractConversionServiceOutputConverter

聊聊Spring AI的ETL Pipeline

4 月 9 日
阅读 3 分钟
279
有TextReader、JsonReader、JsoupDocumentReader、MarkdownDocumentReader、PagePdfDocumentReader、ParagraphPdfDocumentReader、TikaDocumentReader这些实现

聊聊Spring AI的RAG

4 月 8 日
阅读 11 分钟
234
Spring AI受Modular RAG: Transforming RAG Systems into LEGO-like Reconfigurable Frameworks启发实现了Modular RAG,主要分为如下几个阶段:Pre-Retrieval、Retrieval、Post-Retrieval、Generation

聊聊Spring AI的PgVectorStore

4 月 7 日
阅读 9 分钟
304
序本文主要研究一下Spring AI的PgVectorStore示例pom.xml {代码...} pgvector {代码...} 配置 {代码...} 设置initialize-schema为true,默认会执行如下初始化脚本: {代码...} 脚本源码:org/springframework/ai/vectorstore/pgvector/PgVectorStore.java {代码...} 代码 {代码...} 输出如下: {代码...} 源码PgVectorSt...

聊聊Spring AI的RedisVectorStore

4 月 6 日
阅读 9 分钟
240
org/springframework/ai/vectorstore/redis/autoconfigure/RedisVectorStoreAutoConfiguration.java

聊聊Spring AI的ChromaVectorStore

4 月 5 日
阅读 7 分钟
333
org/springframework/ai/vectorstore/chroma/autoconfigure/ChromaVectorStoreAutoConfiguration.java

聊聊Spring AI的MilvusVectorStore

4 月 4 日
阅读 15 分钟
265
org/springframework/ai/vectorstore/milvus/autoconfigure/MilvusVectorStoreAutoConfiguration.java

聊聊Spring AI的Image Model

4 月 3 日
阅读 10 分钟
365
序本文主要研究一下Spring AI的Image ModelImageModelorg/springframework/ai/image/ImageModel.java {代码...} ImageModel继承了Model接口,其call方法入参为ImagePrompt,返回ImageResponseImagePromptorg/springframework/ai/image/ImagePrompt.java {代码...} ImagePrompt实现了ModelRequest接口,它定义了messages...

聊聊Spring AI的EmbeddingModel

4 月 2 日
阅读 14 分钟
327
spring-ai-core/src/main/java/org/springframework/ai/embedding/EmbeddingModel.java

聊聊Spring AI的Chat Model

4 月 1 日
阅读 10 分钟
304
spring-ai-core/src/main/java/org/springframework/ai/model/ModelRequest.java

聊聊Spring AI的RetrievalAugmentationAdvisor

3 月 31 日
阅读 9 分钟
306
spring-ai-core/src/main/java/org/springframework/ai/chat/client/advisor/api/BaseAdvisor.java

聊聊Spring AI的Advisors

3 月 30 日
阅读 40 分钟
381
序本文主要研究一下Spring AI的AdvisorsAdvisororg/springframework/ai/chat/client/advisor/api/Advisor.java {代码...} Advisor接口继承了Ordered,定义了getName方法CallAroundAdvisororg/springframework/ai/chat/client/advisor/api/CallAroundAdvisor.java {代码...} CallAroundAdvisor继承了Advisor接口,它定义...

spring-ai-starter-mcp-client小试牛刀

3 月 29 日
阅读 8 分钟
440
org/springframework/ai/mcp/client/autoconfigure/McpClientAutoConfiguration.java

spring-ai mcp server实战

3 月 28 日
阅读 7 分钟
485
org/springframework/ai/mcp/server/autoconfigure/McpServerAutoConfiguration.java

spring-ai ollama小试牛刀

3 月 27 日
阅读 11 分钟
391
spring-ai-ollama-spring-boot-starter-1.0.0-M5.jar!/META-INF/maven/org.springframework.ai/spring-ai-ollama-spring-boot-starter/pom.xml

聊聊spring ai的mcp server

3 月 26 日
阅读 34 分钟
493
序本文主要研究一下spring ai的mcp servermcp java sdkmcp提供了java sdk,同时还提供了spring webflux及mvc的sse实现 {代码...} spring ai mcpSpring AI MCP扩展了mcp java sdk,提供了spring boot的集成 {代码...} 其中mcp-server提供了webmvc及webflux两个版本示例pom.xml {代码...} config {代码...} weatherService...

聊聊langchain4j的Web Search Engine

3 月 25 日
阅读 11 分钟
353
langchain4j定义了WebSearchEngine接口,它定义了search方法,根据WebSearchRequest返回WebSearchResults

聊聊langchain4j的Code Execution Engine

3 月 24 日
阅读 5 分钟
338
langchain4j定义了CodeExecutionEngine接口,该接口定义了execute方法用于执行指定的代码,langchain4j-code-execution-engine-graalvm-polyglot模块提供了两个实现,分别是GraalVmPythonExecutionEngine、GraalVmJavaScriptExecutionEngine

聊聊langchain4j的MCP

3 月 23 日
阅读 6 分钟
479
HTTP:客户端请求一个SSE(Server-Sent Events)通道以从服务器接收事件,然后通过HTTP POST请求发送命令。这种方式适用于需要跨网络通信的场景,通常用于分布式系统或需要高并发的场景。

聊聊langchain4j的HTTP Client

3 月 22 日
阅读 16 分钟
473
langchain4j提供了langchain4j-http-client模块,它实现了一个HttpClient SPI(服务提供者接口),其他模块通过该接口调用LLM提供商的REST API。这意味着底层HTTP客户端可以被自定义,通过实现HttpClient SPI,还可以集成任何其他HTTP客户端。目前,有两个现成的实现:

聊聊langchain4j的Advanced RAG

3 月 21 日
阅读 37 分钟
389
序本文主要研究一下langchain4j的Advanced RAG核心流程将UserMessage转换为一个原始的QueryQueryTransformer将原始的Query转换为多个Query每个Query通过QueryRouter被路由到一个或多个ContentRetriever每个ContentRetriever检索对应Query相关的ContentContentAggregator将所有检索到的Content合并成一个最终排序的列表这...

Java24的新特性

3 月 20 日
阅读 27 分钟
524
Java语言特性系列Java5的新特性Java6的新特性Java7的新特性Java8的新特性Java9的新特性Java10的新特性Java11的新特性Java12的新特性Java13的新特性Java14的新特性Java15的新特性Java16的新特性Java17的新特性Java18的新特性Java19的新特性Java20的新特性Java21的新特性Java22的新特性Java23的新特性Java24的新特性Java25...

聊聊langchain4j的Naive RAG

3 月 19 日
阅读 16 分钟
387
所谓naive就是我们不会使用任何高级的RAG技术,Easy RAG使用了EmbeddingStoreIngestor来隐藏了文档解析、分割、嵌入、嵌入存储,Naive RAG亦可使用。Naive RAG使用EmbeddingStoreContentRetriever.builder()进行查询相关的定制(Easy RAG直接使用EmbeddingStoreContentRetriever.from(embeddingStore)),startConversatio...

聊聊langchain4j的核心RAG APIs

3 月 18 日
阅读 5 分钟
509
Document类表示整个文档,例如单个 PDF 文件或网页。目前,Document 只能表示文本信息,但未来的更新将使其能够支持图像和表格。

聊聊langchain4j的RAG

3 月 17 日
阅读 7 分钟
427
RAG(Retrieval-Augmented Generation)即检索增强生成,它通过检索来获取相关信息,注入到prompt,然后用增强的prompt然后输入给LLM让LLM在回答的时候能够利用检索到信息,从而降低幻觉。常见的信息检索方法包括:全文(关键词)搜索、向量搜索(语义搜索)、混合搜索。目前langchain4j以向量搜索为主(例如通过Qdrant等向量数...

聊聊langchain4j的Agent

3 月 16 日
阅读 6 分钟
327
customer-support-agent-example/src/main/java/dev/langchain4j/example/CustomerSupportAgent.java

聊聊langchain4j的Tools(Function Calling)

3 月 15 日
阅读 8 分钟
501
序本文主要研究一下langchain4j的Tools(Function Calling)示例tool {代码...} 这里用@Tool注解来描述这个方法的用途,用@P注解来描述参数Low-level {代码...} Low-level步骤比较多:1.将toolSpecifications添加到chatRequest的parameter跟userMessage一起发起chat请求2.接着判断response是否有需要toolExecutionRequests...