LangChain Java 项目介绍
LangChain Java 是 LangChain 的 Java 版本,旨在赋能大数据领域的LLM(大规模语言模型)。它主要在 Java 技术栈中,为大数据领域的LLM应用开发搭建起一座桥梁。
什么是 LangChain Java?
LangChain Java 是 LangChain 在 Java 语言中的实现,旨在使开发者能够更轻松地创建基于LLM的应用程序。通过一套简单的接口,开发者可以快速集成不同的LLM服务,并应用于不同的业务场景。
项目示例
LangChain Java 项目提供了一些示例,帮助开发者快速上手,包括:
- SQL Chain 示例
- API Chain 示例
- RAG Milvus 示例
- RAG Pinecone 示例
- 摘要生成示例
- 谷歌搜索代理示例
- Spark SQL 代理示例
- Flink SQL 代理示例
集成特性
LangChain Java 支持多种LLM和向量存储库,允许开发者根据需要进行集成:
LLM集成
提供与知名LLM服务的接口,包括:
- OpenAI
- Azure OpenAI
- ChatGLM2
- Ollama
向量存储集成
支持常用的向量存储库:
- Pinecone
- Milvus
快速入门指南
API 文档可以从 LangChain Java API 文档 获取。
构建前置条件
为确保顺利构建和运行,开发环境需要:
- Java 17 或更高版本
- 类Unix环境(建议使用Linux或Mac OS X)
- Maven(建议使用版本3.8.6,最低要求3.5.4)
Maven 依赖的配置如下:
<dependency>
<groupId>io.github.hamawhitegg</groupId>
<artifactId>langchain-core</artifactId>
<version>0.2.1</version>
</dependency>
环境配置
使用 LangChain 通常需要与一个或多个模型提供商、数据存储、API等集成。以 OpenAI API 为例配置环境:
export OPENAI_API_KEY=xxx
# 如需代理,设置OPENAI_PROXY环境变量
export OPENAI_PROXY=http://host:port
LLM 使用示例
以下是使用 OpenAI 生成预测结果的一个简单示例:
var llm = OpenAI.builder()
.temperature(0.9f)
.build()
.init();
var result = llm.predict("What would be a good company name for a company that makes colorful socks?");
print(result);
即可得到结果:
Feetful of Fun
聊天模型示例
聊天模型提供了一种与通用语言模型不同的接口,通过消息交互获取结果:
var chat = ChatOpenAI.builder()
.temperature(0)
.build()
.init();
var result = chat.predictMessages(List.of(new HumanMessage("Translate this sentence from English to French. I love programming.")));
println(result);
输出结果:
AIMessage{content='J'adore la programmation.', additionalKwargs={}}
Chains 示例
创建链并结合多个模块是 LangChain 的核心功能之一。以 LLMChain 为例:
var prompt = PromptTemplate.fromTemplate("What is a good name for a company that makes {product}?");
var chain = new LLMChain(llm, prompt);
var result = chain.run("colorful socks");
println(result);
输出结果:
Feetful of Fun
参与测试和支持
克隆项目并运行测试用例:
git clone https://github.com/HamaWhiteGG/langchain-java.git
cd langchain-java
mvn clean test
项目使用 Spotless 格式化代码,修改代码后请务必运行以下命令以确保代码格式正确:
mvn spotless:apply
如有问题或需要帮助,请在 GitHub Issues 提出。
感谢支持
如果这个项目对您有帮助,请考虑通过微信支付请作者喝杯咖啡。