LangChain4j 框架正是以此为目标于 2023 年创建的:
LangChain4j 的目标是简化将 LLM 集成到 Java 应用程序中的过程。
LangChain4j 提供了一种标准的方法:
- 根据给定内容(例如文本)创建嵌入向量
- 将嵌入式存储在嵌入式存储库中
- 在嵌入存储中搜索相似向量
- 与法律硕士讨论
- 使用聊天记忆功能,记住与法律硕士讨论的来龙去脉
此列表并不详尽,LangChain4j 社区一直在实施新功能。
本帖将介绍该框架的第一个主要部分。
将 LangChain4j OpenAI 添加到我们的项目中
与所有 Java 项目一样,这只是一个依赖关系问题。这里我们将使用 Maven,但任何其他依赖管理器也可以实现同样的功能。
作为构建项目的第一步,我们将使用 OpenAI,因此只需添加langchain4j-open-ai 工具:
在其余代码中,我们将使用自己的 API 密钥(可通过注册OpenAI 账户获得),或者 LangChain4j 项目提供的 API 密钥(仅供演示使用):
现在我们可以创建 ChatLanguageModel 的实例:
最后,我们可以问一个简单的问题,并得到答案:
给出的答案可能是这样的
如果您想运行这段代码,请查看Step1AiChatTest.java类。
使用 langchain4j 提供更多语境
让我们添加langchain4j 手工艺品:
它提供了一个工具集,可以帮助我们建立更高级的 LLM 集成,以构建我们的助手。在这里,我们只需创建一个Assistant 接口,该接口提供的chat 方法将自动调用我们之前定义的ChatLanguageModel :
我们只需请求 LangChain4jAiServices 类为我们构建一个实例:
然后调用chat(String) 方法:
这与之前的行为相同。那么,我们为什么要修改代码呢?首先,它更优雅,但更重要的是,你现在可以使用简单的注释向 LLM 发出一些指示:
这就是现在的奉献:
如果您想运行这段代码,请查看Step2AssistantTest.java类。
转到另一个 LLM:langchain4j-ollama
我们可以利用伟大的奥拉马项目。在本地计算机上运行 LLM 会有帮助。
让我们添加langchain4j-ollama 手工艺品:
由于我们要使用测试来运行示例代码,因此让我们在项目中添加Testcontainers:
现在我们可以启动/停止 Docker 容器了:
我们只需"," ,将model 对象改为OllamaChatModel ,而不是之前使用的OpenAiChatModel :
请注意,提取图像及其模型可能需要一些时间,但一段时间后,您就可以得到答案了:
记忆力更好
如果我们提出多个问题,系统默认情况下不会记住之前的问题和答案。因此,如果我们在第一个问题之后提问"他是什么时候出生的?" 、我们的应用程序会回答:
这是无稽之谈。相反,我们应该使用聊天记忆:
现在运行同样的问题就能得到有意义的答案:
结论
在下一篇文章中,我们将了解如何使用 Elasticsearch 作为嵌入存储,向我们的私有数据集提问。这将为我们提供一种方法,使我们的应用程序搜索工作更上一层楼。
常见问题
什么是 LangChain4j?
LangChain4j(LangChain for Java)是一个功能强大的工具集,可用于在纯 Java 中构建 RAG 应用程序。




