网易首页 > 网易号 > 正文 申请入驻

Quarkus 开发基于 LangChain4j 的扩展,方便将 LLM 集成到 Quarkus 应用程序中

0
分享至


作者 | Olimpiu Pop

译者 | 明知山

策划 | Tina

LangChain for Java(LangChain4J)战略顾问和布道师 Lize Raes 在 2023 年比利时 Devoxx 大会上做了“Java Meets AI”的演讲,受此启发,Quarkus 团队开始开发基于 LangChain4J 库的扩展,这是 LangChain 库的 Java 重新实现版本(最初用 Python 或 JavaScript 实现)。这将允许开发人员将大语言模型(LLM)集成到他们的 Quarkus 应用程序中。Quarkus LangChain4J 第一个公开版本,即 0.1 版本,在 2023 年 11 月中旬发布。这个扩展几乎每周都会发布一次,最新版本是 0.5.1。

InfoQ 采访了 Quarkus 项目联合负责人 Max Rydahl Andersen,分享了他对该扩展未来发展以及是否适合投产的看法。他说:

在真实项目中使用它?可以尝试,但 langchain4j 的 API 仍在变化,所以我们还处于实验阶段。 我们将继续跟进 langchain4j 并不断扩展它。 我们十分关注扩展对“开放”模型的支持,特别是那些可以在云端或本地基础架构上运行的模型。

Andersen 认为 LLM 可以被用在现有和未来的许多企业项目中,他认为新兴的编程模型与 Quarkus 现有的功能集相契合。该扩展允许声明性地定义 LLM 集成点,类似于 Quarkus REST Client:用 @RegisterAiService 注解接口,然后通过在应用程序的任意位置注入服务来使用 LLM。这种方法具有以下优点:

  • 可测试性,可以通过伪接口实现来模拟服务 ;

  • 可观测性,开发人员可以用指标注释来监控方法 ;

  • 弹性,开发人员可以通过容错注释来处理故障、超时和其他临时问题。


@RegisterAiServicepublic interface TriageService {// methods.

在使用像 ChatGPT 这样的 LLM 时,大多数交互是通过自然语言提示进行的,而在传统应用程序中,交互是通过编程语言进行的。与传统代码不同,quarkus-langchain扩展保留了与 LLM 交互的方式,允许开发人员通过自然语言定义范围和任务。LLM 的范围可以通过 @SystemMessage(String) 注解来定义,任务可以通过 @UserMessage(String) 注解来定义。


@RegisterAiServicepublic interface TriageService {@SystemMessage("""You are working for a bank, processing reviews aboutfinancial products. Triage reviews into positive andnegative ones, responding with a JSON document.@UserMessage("""Your task is to process the review delimited by ---.Apply sentiment analysis to the review to determineif it is positive or negative, considering various languages.
For example:- `I love your bank, you are the best!` is a 'POSITIVE' review- `J'adore votre banque` is a 'POSITIVE' review- `I hate your bank, you are the worst!` is a 'NEGATIVE' review
Respond with a JSON document containing:- the 'evaluation' key set to 'POSITIVE' if the review ispositive, 'NEGATIVE' otherwise- the 'message' key set to a message thanking or apologizingto the customer. These messages must be polite and match thereview's language.
{review}TriagedReview triage(String review);

由于大型语言模型的知识收到训练集数据的限制,Quarkus LangChain4j 扩展提供了两种机制来扩展知识:工具和文档存储。


工具允许 LLM 与父应用程序发生交互,它通过调用 REST 端点或执行数据库查询来实现交互。LLM 决定要使用的参数以及如何处理结果。要声明一个工具,只需在 bean 方法上使用@Tool注解:


@ApplicationScopedpublic class CustomerRepository implements PanacheRepository {
@Tool("get the customer name for the given customerId")public String getCustomerName(long id) {return find("id", id).firstResult().name;

文档存储是 Quarkus 的检索增强生成(RAG)实现,这是一种用与感兴趣主题(用户手册、内部文档等)有关的文档来扩展 LLM 上下文的机制。从文档中获取信息包括两个步骤:

摄入过程——解析文档并计算其向量表示,然后存储在文档存储库中。Quarkus 提供了一个 Ingestor 来简化信息的摄入。


@InjectEmbeddingModel embeddingModel;
public void ingest(List documents) {var ingestor = EmbeddingStoreIngestor.builder().embeddingStore(store).embeddingModel(embeddingModel).documentSplitter(recursive(500, 0)).build();ingestor.ingest(documents);

RAG 过程——在调用 LLM 之前,查询文档存储并丰富上下文。Quarkus 在这里使用的是 Retriever。


@ApplicationScopedpublic class RetrieverExample implements Retriever {
private final EmbeddingStoreRetriever retriever;
RetrieverExample(RedisEmbeddingStore store, EmbeddingModel model) {retriever = EmbeddingStoreRetriever.from(store, model, 20);
@Overridepublic List findRelevant(String s) {return retriever.findRelevant(s);

目前,该扩展支持 Redis Store、Chroma Store、Pinecone Store、PgVector(PostgreSQL)Store、进程内 Embedding 或加载 CSV 文件以及与商业(例如 OpenAI)和开源模型(例如 Hugging Face 或 Ollama)进行交互的能力。

Quarkus 紧跟 Spring Framework 的脚步,加入了嵌入 AI 能力的行列。该实现基于 LangChain4j,并得到了 LangChain4j 作者 Dmytro Liubarskyi 及其团队的支持。因为发展迅速,团队正在寻求反馈和想法来改进这些集成。Andersen 表示,LLM 扩展是对其他现有集成非常好的补充:可以集成各种数据摄入系统(例如,通过 Apache Camel 集成),而 Quarkus 的云原生 DNA 可以实现轻松高效的部署。

查看英文原文

https://www.infoq.com/news/2023/12/quarkus-langchain-llm-integratio/

声明:本文为 InfoQ 翻译,未经许可禁止转载。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
嫦娥六号900秒完美落月,因技术受限,让看直播的小伙伴失望了!

嫦娥六号900秒完美落月,因技术受限,让看直播的小伙伴失望了!

田间农人阿馋
2024-06-03 01:02:04
世界名画复刻!安切洛蒂再次戴墨镜抽雪茄与弟子同框

世界名画复刻!安切洛蒂再次戴墨镜抽雪茄与弟子同框

懂球帝
2024-06-03 03:34:11
女人不害羞,让你看这3个隐私,多半是爱你无法自拔了!

女人不害羞,让你看这3个隐私,多半是爱你无法自拔了!

好笑娱乐君每一天
2024-06-03 05:23:54
闹大了!河北三家3口被当街杀害,知情人透露是5万块钱惹的祸

闹大了!河北三家3口被当街杀害,知情人透露是5万块钱惹的祸

亦纯杂谈
2024-06-02 13:47:59
郭有才第三次进入停播状态!知名打假博主李雨禅发帖:懂的都懂…

郭有才第三次进入停播状态!知名打假博主李雨禅发帖:懂的都懂…

火山诗话
2024-06-02 12:48:04
手冲咖啡改成了预制咖啡!南京老太却没明白,自己为啥不火了

手冲咖啡改成了预制咖啡!南京老太却没明白,自己为啥不火了

金牌娱乐
2024-06-02 11:30:35
双榜暴跌!中国女排0-3溃败,惨遭日本反超,世联赛跌至第六

双榜暴跌!中国女排0-3溃败,惨遭日本反超,世联赛跌至第六

天涯沦落人
2024-06-02 21:01:00
“升糖大户”被揪出,不是米饭!医生:很多人不听劝,每天都在吃

“升糖大户”被揪出,不是米饭!医生:很多人不听劝,每天都在吃

39健康网
2024-05-31 20:05:50
欠薪闭店,创始人跑路!一瓶卖8块的国产老汽水,走到了破产边缘

欠薪闭店,创始人跑路!一瓶卖8块的国产老汽水,走到了破产边缘

老妞读书谈
2024-06-02 10:59:28
城管队长出轨女下属称对方“嫩妈”,女主照片曝光真白瞎这张脸!

城管队长出轨女下属称对方“嫩妈”,女主照片曝光真白瞎这张脸!

听风听你
2024-05-30 20:29:17
踩雷!知名国企巨头公告:3亿元理财到期,仅收回不到3000万元!曾花上百亿元买理财

踩雷!知名国企巨头公告:3亿元理财到期,仅收回不到3000万元!曾花上百亿元买理财

每日经济新闻
2024-06-02 18:04:11
凌晨转会:一夜3重磅,穆帅上任三把火,劳塔罗续约国米!

凌晨转会:一夜3重磅,穆帅上任三把火,劳塔罗续约国米!

邮轮摄影师阿嗵
2024-06-03 08:18:13
如今,最不能干的职业,一是警察;二是消防;三是医生;四是护士

如今,最不能干的职业,一是警察;二是消防;三是医生;四是护士

叒女紫121
2024-06-02 11:30:36
中国发布嫦娥六号月背着陆影像,对NASA伤害性不大但侮辱性极强!

中国发布嫦娥六号月背着陆影像,对NASA伤害性不大但侮辱性极强!

熊孩子爱科技
2024-06-02 15:18:11
一手扶持外蒙古独立后,苏联为什么始终拒绝蒙古人的加盟要求?

一手扶持外蒙古独立后,苏联为什么始终拒绝蒙古人的加盟要求?

文史颜如玉
2024-06-02 09:00:02
江西的这锅汤发霉变质的根本原因是什么?

江西的这锅汤发霉变质的根本原因是什么?

逍遥论经
2024-04-22 09:30:10
把中国“光刻机”变成“废铁”?ASML正式表态,人民日报说得很对

把中国“光刻机”变成“废铁”?ASML正式表态,人民日报说得很对

田间农人阿馋
2024-06-01 22:12:00
2024形势有多严峻?3个现象暗示你:“苦日子”已经开始!

2024形势有多严峻?3个现象暗示你:“苦日子”已经开始!

时尚的弄潮
2024-06-02 23:55:42
交警躲起来查电动车,被路人怒斥是“土匪还是警察”,网友:恶心

交警躲起来查电动车,被路人怒斥是“土匪还是警察”,网友:恶心

三月柳
2024-06-02 15:31:37
我们对外部世界的看法是有问题的

我们对外部世界的看法是有问题的

维舟
2024-04-29 21:07:28
2024-06-03 11:28:49
InfoQ
InfoQ
有内容的技术社区媒体
9871文章数 49745关注度
往期回顾 全部

科技要闻

2万字演讲|黄仁勋剧透 未来3年新品有这些

头条要闻

岛内舆论批赖清德上任后像"斗鸡" 表现比蔡英文还差

头条要闻

岛内舆论批赖清德上任后像"斗鸡" 表现比蔡英文还差

体育要闻

万人空巷!皇马举行欧冠夺冠庆典

娱乐要闻

白玉兰提名:胡歌、范伟争视帝

财经要闻

黄仁勋的计划:涉及新AI平台 HBM4 机器人

汽车要闻

搭载华为HiCAR 传祺M6 MAX售14.58万元

态度原创

艺术
房产
健康
数码
军事航空

艺术要闻

穿越时空的艺术:《马可·波罗》AI沉浸影片探索人类文明

房产要闻

重磅!琼海出台楼市新政:住房出租、挂牌计划出售,都可减套数!

晚餐不吃or吃七分饱,哪种更减肥?

数码要闻

古尔曼:WWDC 2024不会发布新硬件

军事要闻

朝国防省:朝方将暂停向韩方投放垃圾

无障碍浏览 进入关怀版