前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >LangChain4j炸裂!Java开发者打造AI应用从未如此简单

LangChain4j炸裂!Java开发者打造AI应用从未如此简单

原创
作者头像
JavaEdge
修改2024-09-19 17:55:42
2790
修改2024-09-19 17:55:42
举报
文章被收录于专栏:大模型应用开发

LangChain4j目标是简化将大语言模型(LLM)集成到 Java 应用程序的过程。

1 实现方式

1.1 标准化 API

LLM 提供商(如 OpenAI)和向量嵌入存储(如 Pinecone)使用专有 API。LangChain4j 提供标准化 API,避免每次都要学习和实现特定 API 的麻烦。要试验不同 LLM 或嵌入存储,可轻松切换而无需重写代码。

LangChain4j 目前支持:

主流 LLM 提供商

Provider

Streaming

Tools

JSON mode

Supported Modalities (Input)

Observability

Local

Native

Comments

Amazon Bedrock

text

Anthropic

text, image

Azure OpenAI

text, image

ChatGLM

text

DashScope

text, image, audio

Google AI Gemini

text, image, audio, video, PDF

Google Vertex AI Gemini

text, image, audio, video, PDF

Google Vertex AI PaLM 2

text

Hugging Face

text

Jlama

text

LocalAI

text

Mistral AI

text

Ollama

text, image

OpenAI

text, image

Compatible with: Ollama, LM Studio, GPT4All, etc.

Compatible with: Groq, etc.

Qianfan

text

Cloudflare Workers AI

text

Zhipu AI

text, image

主流嵌入存储

Embedding Store

Storing Metadata

Filtering by Metadata

Removing Embeddings

In-memory

Astra DB

Azure AI Search

Azure CosmosDB Mongo vCore

Azure CosmosDB NoSQL

Cassandra

Chroma

Couchbase

Elasticsearch

Infinispan

Milvus

MongoDB Atlas

Only native filter support

Neo4j

OpenSearch

Oracle

PGVector

Pinecone

Qdrant

Redis

Tablestore

Vearch

Vespa

Weaviate

1.2 综合工具箱

过去一年,社区开发了许多由 LLM 驱动的应用程序,识别了常见的抽象、模式和技术。LangChain4j 已将这些精炼成一个现成包。工具箱涵盖:

  • 从底层的提示词模板、聊天记忆模块管理、输出解析
  • 到高级模式如 AI 服务和 RAG 的工具

对于每个抽象层次,都提供了一个接口,并基于常见技术提供了多个现成实现。不论构建聊天机器人,还是开发一个从数据导入到检索的完整 RAG 管道,LangChain4j 提供了广泛选择。

1.3 大量示例

这些 示例 展示了如何开始创建各种由 LLM 驱动的应用程序,提供了灵感并让您能够快速开始构建。

LangChain4j 于 2023 年初在 ChatGPT 热潮中开始开发。但发现Java 领域缺乏与 Python 和 JavaScript 类似的 LLM 库和框架,便决定解决这一问题!虽然名字包含“LangChain”,但该项目融合了 LangChain、Haystack、LlamaIndex 及更广泛社区的理念,并加入自己的创新。

开发团队积极关注社区的最新进展,致力于快速整合新技术和集成,确保Javaer始终保持最新状态。该库仍在积极开发中,虽然某些功能尚在开发,但核心功能已经就绪,现可立即开始构建基于 LLM 的应用程序!

为便于集成,LangChain4j 还包括和 Spring Boot 集成。

2 LangChain4j 的功能

  • 与15+ 个 LLM 提供商的集成
  • 与15+ 个向量嵌入存储的集成
  • 与10+ 个嵌入模型的集成
  • 与5个云端和本地图像生成模型的集成
  • 与2 个评分(重新排序)模型的集成:
  • 与 OpenAI 的一个审核模型的集成
  • 支持文本和图像输入(多模态)
  • AI 服务(高级 LLM API)
  • 提示词模板
  • 持久化和内存中的 聊天记忆模块 算法实现:消息窗口和 token 窗口
  • LLM 响应流式传输
  • 常见 Java 数据类型和自定义 POJO 的输出解析器
  • 工具(功能调用)
  • 动态工具(执行动态生成的 LLM 代码)
  • RAG(检索增强生成):
  • 数据导入:
    • 从多个来源(文件系统、URL、GitHub、Azure Blob Storage、Amazon S3 等)导入各种类型的文档(TXT、PDF、DOC、PPT、XLS 等)
    • 使用多种分割算法将文档切分成更小的片段
    • 对文档和片段进行后处理
    • 使用嵌入模型对片段进行嵌入
    • 将嵌入存储在向量嵌入存储中
  • 检索(简单和高级):
    • 查询转换(扩展、压缩)
    • 查询路由
    • 从向量存储和/或任何自定义来源进行检索
    • 重新排序
    • 倒数排名融合
    • RAG 流程中每个步骤的自定义
  • 文本分类
  • Token 切分和 Token 计数估算工具

3 两个抽象层次

LangChain4j 在两个抽象层次上运行:

  • 底层。这层,你拥有最大自由,可以访问所有底层组件,如 ChatLanguageModelUserMessageAiMessageEmbeddingStoreEmbedding 等。这些是 LLM 应用程序的“原语”。你可完全控制如何组合它们,但需编写更多代码
  • 高级。这层,你通过高级 API(如 AiServices)与 LLM 进行交互,这些 API 屏蔽所有复杂性和样板代码。你仍可灵活调整和微调行为,但是以声明方式完成

4 LangChain4j 库结构

LangChain4j的模块化设计,包括:

  • langchain4j-core 模块,定义了核心抽象(如 ChatLanguageModelEmbeddingStore)及其 API
  • langchain4j 模块,包含了诸如 ChatMemoryOutputParser 等有用工具,以及如 AiServices 等高级功能
  • 各种 langchain4j-{integration} 模块,每个模块提供与各种 LLM 提供商和嵌入存储的集成。可单独使用 langchain4j-{integration} 模块。对于额外功能,只需导入主 langchain4j 依赖项

5 LangChain4j 代码库

6 使用案例

我为啥需要这些功能?一些使用场景:

想要实现一个具有自定义行为并能访问您数据的 AI 聊天机器人:

  • 客户支持聊天机器人可以:
    • 礼貌地回答客户问题
    • 接收/修改/取消订单
  • 教育助手可以:
    • 教授各种学科
    • 解释不清楚的部分
    • 评估用户的理解/知识

希望处理大量非结构化数据(文件、网页等),并从中提取结构化信息。如:

  • 从客户评论和支持聊天记录中提取见解
  • 从竞争对手的网站中提取有趣的信息
  • 从求职者的简历中提取见解

希望生成信息,如:

  • 针对每位客户定制的电子邮件
  • 为你的应用程序/网站生成内容:
    • 博客文章
    • 故事

希望转换信息,如:

  • 摘要
  • 校对和重写
  • 翻译

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 实现方式
    • 1.1 标准化 API
      • 主流 LLM 提供商
      • 主流嵌入存储
    • 1.2 综合工具箱
      • 1.3 大量示例
      • 2 LangChain4j 的功能
      • 3 两个抽象层次
      • 4 LangChain4j 库结构
      • 5 LangChain4j 代码库
      • 6 使用案例
      相关产品与服务
      云数据库 Redis®
      腾讯云数据库 Redis®(TencentDB for Redis®)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档