当前位置: 首页 > news >正文

第1章:LangChain4j的聊天与语言模型

LangChain4J官方文档翻译与解析
目标文档路径:
https://docs.langchain4j.dev/tutorials/chat-and-language-models/

  1. 语言模型的两种API类型
    LangChain4j支持两种语言模型(LLM)的API:
    LanguageModel:这种API非常简单,它接受一个字符串作为输入,并返回一个字符串作为输出。这种API正在逐渐被聊天API(第二种API类型)取代。
    ChatLanguageModel:这种API接受多个ChatMessage作为输入,并返回一个AiMessage作为输出。ChatMessage通常包含文本,但某些LLM还支持其他模态(例如图像、音频等)。例如,OpenAI的gpt-4o-mini和Google的gemini-1.5-pro就是支持这种多模态的聊天模型。
    LangChain4j不再扩展对LanguageModel的支持,所有新功能都将使用ChatLanguageModel API。ChatLanguageModel是LangChain4j中与LLM交互的低级API,提供了最大的灵活性和功能。此外,LangChain4j还支持其他类型的模型,例如:
    EmbeddingModel:将文本转换为嵌入向量。
    ImageModel:生成和编辑图像。
    ModerationModel:检查文本是否包含有害内容。
    ScoringModel:对多段文本进行评分或排名,以确定它们与查询的相关性。这对于检索增强型生成(RAG)非常有用。
  2. ChatLanguageModel API
    ChatLanguageModel API的核心是generate方法,它接受一个或多个ChatMessage作为输入,并返回一个AiMessage。ChatMessage是一个基础接口,代表聊天消息,有以下几种类型:
    UserMessage:用户发送的消息,可以是文本或其他模态内容。
    AiMessage:AI生成的消息,通常是对UserMessage的回应。
    ToolExecutionResultMessage:工具执行请求的结果。
    SystemMessage:系统消息,通常由开发者定义,用于指定LLM在对话中的角色、行为风格等。LLM会更关注SystemMessage,因此不要让用户随意修改或注入内容。
  3. 多轮对话的管理
    由于LLM本身是无状态的,因此需要开发者手动管理对话状态。例如,一个简单的多轮对话如下:
    用户:你好,我叫Klaus。
    AI:你好Klaus,我能帮你什么?
    用户:我的名字是什么?
    AI:Klaus。
    在ChatLanguageModel中,需要将之前的对话消息传递给generate方法,以维护对话上下文。例如:
    java复制
    UserMessage firstUserMessage = UserMessage.from(“你好,我叫Klaus”);
    AiMessage firstAiMessage = model.generate(firstUserMessage).content();
    UserMessage secondUserMessage = UserMessage.from(“我的名字是什么?”);
    AiMessage secondAiMessage = model.generate(firstUserMessage, firstAiMessage, secondUserMessage).content();
  4. 多模态支持
    UserMessage不仅可以包含文本,还可以包含其他类型的内容,例如图像、音频、视频或PDF文件。例如,发送文本和图像的代码如下:
    java复制
    UserMessage userMessage = UserMessage.from(
    TextContent.from(“描述下面的图像”),
    ImageContent.from(“https://example.com/cat.jpg”)
    );
    Response response = model.generate(userMessage);
  5. Kotlin扩展
    LangChain4j为Kotlin提供了扩展,支持异步处理聊天交互。这些扩展利用Kotlin的协程功能,提供了chatAsync和generateAsync方法,简化了聊天请求的构建和对话处理。
    总结
    这篇文章主要介绍了LangChain4j中与语言模型和聊天模型相关的API。它强调了ChatLanguageModel的重要性,并详细解释了如何通过ChatMessage管理多轮对话、支持多模态输入,以及如何利用Kotlin扩展进行异步处理。这些功能使得LangChain4j在构建聊天应用时更加灵活和强大。
http://www.lryc.cn/news/540231.html

相关文章:

  • Cython学习笔记1:利用Cython加速Python运行速度
  • 【从0做项目】Java音缘心动(1)———项目介绍设计
  • 智慧农业新生态 | 农业数字化服务平台——让土地生金,让服务无忧
  • C++编程,#include <iostream>详解,以及using namespace std;作用
  • jetbrains IDEA集成大语言模型
  • 理解都远正态分布中指数项的精度矩阵(协方差逆矩阵)
  • 使用 Spark NLP 实现中文实体抽取与关系提取
  • less-8 boolen盲注,时间盲注 函数补全
  • [NKU]C++基础课(五)补充:结构体
  • 亲测可用,IDEA中使用满血版DeepSeek R1!支持深度思考!免费!免配置!
  • springcloud整合seata
  • Html5学习教程,从入门到精通,HTML5 简介语法知识点及案例代码(1)
  • Django加bootstrap实现上传文件含有进度条
  • 八大排序算法(2)交换排序-冒泡排序 和 快速排序
  • Python的那些事第二十三篇:Express(Node.js)与 Python:一场跨语言的浪漫邂逅
  • STM32MP157A单片机移植Linux驱动
  • Qt程序退出相关资源释放问题
  • 【大学生职业规划大赛备赛PPT资料PDF | 免费共享】
  • win32汇编环境,对话框中使用菜单示例一
  • AutoDock CrankPep or ADCP进行蛋白质多肽对接
  • 高压直流熔断器研究
  • 微信小程序(uni)+蓝牙连接+Xprint打印机实现打印功能
  • 使用 Docker 部署 Flask 应用
  • 深入浅出GraphQL:现代API设计的未来
  • 深入理解Zookeeper:分布式系统的协调者
  • python绘图之回归拟合图
  • C语言学习笔记(第二部份)
  • jQuery UI CSS 框架 API
  • Redis7——基础篇(六)
  • Windows网络安全基础