Langchain4j-6-RAG

基本概念

RAG(检索增强生成,Retrieval-Augmented Generation)是通过外挂知识库,让大模型具备垂类知识的一种技术,扩展知识边界,并避免“幻觉”问题。
主要步骤有:

  1. 预处理(蓝线部分):将数据通过分词器切分为片段,然后通过嵌入模型转换为向量,存储到向量数据库中
  2. 检索(红线部分):通过外部文档库搜索相关文本片段,或通过向量数据库进行相似度查询,先检索出与用户问题相关的内容。
  3. 生成(红线部分):将检索到的相关内容与用户原始问题一同输入到大语言模型中,由模型进行理解和综合,生成更准确、包含事实依据的回答。

image.png

简单示例

添加依赖

<dependency>  
    <groupId>dev.langchain4j</groupId>  
    <artifactId>langchain4j-easy-rag</artifactId>  
</dependency>

添加向量数据库(这里方便起见使用内存向量数据库)

// LLMConfig.java
@Bean  
public InMemoryEmbeddingStore<TextSegment> embeddingStore() {  
    return new InMemoryEmbeddingStore<>();  
}

构建 AIService

// ChatAssictant.java
public interface ChatAssistant {  
  
    /**  
     * 聊天  
     *  
     * @param message 消息  
     * @return {@link String }  
     */    String chat(String message);  
}

// LLMConfig.java
@Bean  
public ChatAssistant assistant(ChatModel chatModel, EmbeddingStore<TextSegment> embeddingStore)  
{  
    return AiServices.builder(ChatAssistant.class)  
                .chatModel(chatModel)  
                .chatMemory(MessageWindowChatMemory.withMaxMessages(50))  
                .contentRetriever(EmbeddingStoreContentRetriever.from(embeddingStore))  
            .build();  
}
posted @ 2025-08-17 18:05  Miaops  阅读(14)  评论(0)    收藏  举报