![](https://img-blog.csdnimg.cn/2019091813595558.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java-LangChain
文章平均质量分 69
基于Java版的LangChain实现的大语言模型的学习教程。
方便Java的同学进行大语言模型的相关应用层的开发和转型。
对应的课程代码已经放在:https://github.com/Starcloud-Cloud/java-langchain
df007df
帮助大家从容面对面试,弥补平时工作中因没有时间而遗忘的八股文。
提供面经突击内容,作为面试突击或补齐多年Java基本功必备。
展开
-
Java-langchain:在Java环境中构建强大的基于LLM的应用程序
配套课程代码已经发布在:https://github.com/Starcloud-Cloud/java-langchain。: 一个Java 8+的LangChain实现。在(企业)Java环境中构建强大的基于LLM的应用程序。这里持续连载详细的Java入门的LLM学习课程。原创 2023-10-02 18:50:35 · 2941 阅读 · 0 评论 -
【Java-LangChain:使用 ChatGPT API 搭建系统-11】用 ChatGPT API 构建系统 总结篇
本课程详细介绍了 LLM 工作原理,包括分词器(tokenizer)的细节、评估用户输入的质量和安全性的方法、使用思维链作为 Prompt、通过链式 Prompt 分割任务以及返回用户前检查输出等。此外,课程也涉及到如何构建负责任的系统,以保证模型提供合理且相关的反馈。本课程还介绍了评估系统的长期性能,以监控和改进表现的方法。原创 2023-10-03 10:51:15 · 555 阅读 · 0 评论 -
【Java-LangChain:使用 ChatGPT API 搭建系统-10】评估(下)-当不存在一个简单的正确答案时
在上一章中,了解了如何评估 LLM 模型在 有明确正确答案 的情况下的输出,我们可以编写一个函数来判断 LLM 输出是否正确地分类并列出产品。然而,如果 LLM 用于生成文本,而不仅仅是分类问题的答案呢?接下来,我们将探讨如何评估这种类型的 LLM 输出的方法。原创 2023-10-03 10:50:37 · 716 阅读 · 0 评论 -
【Java-LangChain:使用 ChatGPT API 搭建系统-9】评估(上)-存在一个简单的正确答案时
在之前的章节中,我们展示了如何使用 LLM 构建应用程序,包括评估输入、处理输入以及在向用户显示输出之前进行最终输出检查。构建这样的系统后,如何知道它的工作情况?甚至在部署后并让用户使用它时,如何跟踪它的运行情况,发现任何缺陷,并持续改进系统的答案质量?在本章中,我们想与您分享一些最佳实践,用于评估 LLM 的输出。构建基于 LLM 的应用程序与传统的监督学习应用程序有所不同。由于可以快速构建基于 LLM 的应用程序,因此评估方法通常不从测试集开始。相反,通常会逐渐建立一组测试示例。原创 2023-10-03 10:50:01 · 466 阅读 · 0 评论 -
【Java-LangChain:使用 ChatGPT API 搭建系统-8】搭建一个带评估的端到端问答系统
在本章中,我们将搭建一个带评估的端到端问答系统,这个系统综合了之前多节课的内容,并加入了评估过程。检查输入,确认其是否能通过审核 API 的审核。如果通过了审核,我们将查找产品列表。如果找到了产品,我们将尝试查找它们的相关信息。我们使用模型回答用户提出的问题。我们将通过审核 API 对生成的答案进行审核。如果没有被标记为有害的,我们将把答案返回给用户。原创 2023-10-03 10:49:23 · 557 阅读 · 2 评论 -
【Java-LangChain:使用 ChatGPT API 搭建系统-7】检查结果
在本章中,我们将重点如何检查系统生成的输出。在向用户展示输出之前,检查输出的质量、相关性和安全性对于确保提供的回应非常重要,无论是在自动化流程中还是其他场景中。我们将学习如何使用审查 API 来评估输出,并探讨如何使用额外的 Prompt 来提升模型在展示输出之前的质量评估。原创 2023-10-03 10:48:49 · 152 阅读 · 0 评论 -
【Java-LangChain:使用 ChatGPT API 搭建系统-6】处理输入-链式 Prompt Chaining Prompts
在本章中,我们将学习如何通过将复杂任务拆分为一系列简单的子任务来链接多个 Prompt。您可能会想,为什么要将任务拆分为多个 Prompt,而不是像我们在上一个视频中学习的那样,使用思维链推理一次性完成呢?我们已经证明了语言模型非常擅长遵循复杂的指令,特别是像 GPT-4 这样的高级模型。那么让我们用两个比喻来解释为什么我们要这样做,来比较思维链推理和链式 Prompt。将任务拆分为多个 Prompt 的第一个比喻是一次性烹饪复杂菜肴与分阶段烹饪的区别。原创 2023-10-03 10:48:09 · 990 阅读 · 0 评论 -
【Java-LangChain:使用 ChatGPT API 搭建系统-5】处理输入-思维链推理
在本章中,我们将专注于处理输入,即通过一系列步骤生成有用地输出。有时,模型在回答特定问题之前需要进行详细地推理。如果您参加过我们之前的课程,您将看到许多这样的例子。有时,模型可能会因为过于匆忙得出结论而在推理过程中出错。因此,我们可以重新构思查询,要求模型在给出最终答案之前提供一系列相关的推理步骤,这样它就可以更长时间、更深入地思考问题。通常,我们称这种要求模型逐步推理问题的策略为思维链推理。原创 2023-10-03 10:47:28 · 550 阅读 · 0 评论 -
【Java-LangChain:使用 ChatGPT API 搭建系统-4】评估输入-分类
如果您正在构建一个允许用户输入信息的系统,首先要确保人们在负责任地使用系统,以及他们没有试图以某种方式滥用系统,这是非常重要的。在本章中,我们将介绍几种策略来实现这一目标。我们将学习如何使用 OpenAI 的 Moderation API 来进行内容审查,以及如何使用不同的 Prompt 来检测 Prompt 注入(Prompt injections)。原创 2023-10-03 10:46:52 · 1940 阅读 · 2 评论 -
【Java-LangChain:使用 ChatGPT API 搭建系统-3】评估输入-分类
在本章中,我们将重点讨论评估输入任务,这对于确保系统的质量和安全性至关重要。对于需要处理不同情况下的许多独立指令集的任务,首先对查询类型进行分类,并以此为基础确定要使用哪些指令,具有诸多益处。这可以通过定义固定的类别和 hard-coding 与处理给定类别任务相关的指令来实现。例如,在构建客户服务助手时,首先对查询类型进行分类,然后根据该分类确定要使用哪些指令,这一点可能非常重要。举个具体的例子,如果用户要求关闭其帐户,那么二级指令可能是添加有关如何关闭账户的额外说明;原创 2023-10-03 10:46:15 · 559 阅读 · 0 评论 -
【Java-LangChain:使用 ChatGPT API 搭建系统-2】语言模型,提问范式与 Token
在本章中,我们将和您分享大型语言模型(LLM)的工作原理、训练方式以及分词器(tokenizer)等细节对 LLM 输出的影响。我们还将介绍 LLM 的提问范式(chat format),这是一种指定系统消息(system message)和用户消息(user message)的方式,让您了解如何利用这种能力。原创 2023-10-03 10:44:18 · 1689 阅读 · 0 评论 -
【Java-LangChain:使用 ChatGPT API 搭建系统-1】简介
本课程以构建客服助手为例,使用不同的 Prompt 链式调用语言模型,具体的 Prompt 选择将取决于上一次调用的输出结果,有时还需要从外部来源查找信息。欢迎来到课程《使用 ChatGPT API 搭建系统》 , 旨在指导开发者如何基于 ChatGPT 搭建完整的智能问答系统。使用 ChatGPT 不仅仅是一个单一的 Prompt 或单一的模型调用,本课程将分享使用 LLM 构建复杂应用的最佳实践。本课程将围绕该主题,逐步了解应用程序内部的构建步骤,并分享在长期视角下系统评估和持续改进方面的最佳实践。原创 2023-10-03 10:43:15 · 607 阅读 · 0 评论 -
【Java-LangChain:面向开发者的提示工程-8】聊天机器人
使用一个大型语言模型的一个令人兴奋的事情是,我们可以用它来构建一个定制的聊天机器人 (Chatbot) ,只需要很少的工作量。在这一节中,我们将探索如何利用聊天的方式,与个性化(或专门针对特定任务或行为的)聊天机器人进行扩展对话。像 ChatGPT 这样的聊天模型实际上是组装成以一系列消息作为输入,并返回一个模型生成的消息作为输出的。这种聊天格式原本的设计目标是简便多轮对话,但我们通过之前的学习可以知道,它对于不会涉及任何对话的单轮任务也同样有用。原创 2023-10-02 19:04:23 · 546 阅读 · 0 评论 -
【Java-LangChain:面向开发者的提示工程-7】文本扩展
扩展是将短文本(例如一组说明或主题列表)输入到大型语言模型中,让模型生成更长的文本(例如基于某个主题的电子邮件或论文)。这种应用是一把双刃剑,好处例如将大型语言模型用作头脑风暴的伙伴;但也存在问题,例如某人可能会使用它来生成大量垃圾邮件。因此,当你使用大型语言模型的这些功能时,请仅以负责任 (responsible) 和有益于人们 (helps people) 的方式使用它们。在本章中,你将学会如何基于 OpenAI API 生成针对每位客户评价优化的客服电子邮件。原创 2023-10-02 19:03:49 · 152 阅读 · 0 评论 -
【Java-LangChain:面向开发者的提示工程-6】文本转换
LLM非常擅长将输入转换成不同的格式,典型应用包括多语种文本翻译、拼写及语法纠正、语气调整、格式转换等。本章节将介绍如何使用编程的方式,调用API接口来实现“文本转换”功能。原创 2023-10-02 19:02:41 · 228 阅读 · 0 评论 -
【Java-LangChain:面向开发者的提示工程-5】推断
推断任务可以看作是模型接收文本作为输入,并执行某种分析的过程。其中涉及提取标签、提取实体、理解文本情感等等。如果你想要从一段文本中提取正面或负面情感,在传统的机器学习工作流程中,需要收集标签数据集、训练模型、确定如何在云端部署模型并进行推断。这样做可能效果还不错,但是执行全流程需要很多工作。而且对于每个任务,如情感分析、提取实体等等,都需要训练和部署单独的模型。LLM 的一个非常好的特点是,对于许多这样的任务,你只需要编写一个 Prompt 即可开始产出结果,而不需要进行大量的工作。原创 2023-10-02 19:02:03 · 177 阅读 · 0 评论 -
【Java-LangChain:面向开发者的提示工程-4】文本概括
当今世界上文本信息浩如烟海,我们很难拥有足够的时间去阅读所有想了解的东西。但欣喜的是,目前LLM在文本概括任务上展现了强大的水准,也已经有不少团队将概括功能实现在多种应用中。本章节将介绍如何使用编程的方式,调用API接口来实现“文本概括”功能。原创 2023-10-02 19:01:17 · 316 阅读 · 0 评论 -
【Java-LangChain:面向开发者的提示工程-3】迭代优化
当使用 LLM 构建应用程序时,实践层面上很难第一次尝试就成功获得适合最终应用的 Prompt。但这并不重要,只要您有一个好的迭代过程来不断改进您的 Prompt,那么您就能够得到一个适合任务的 Prompt。虽然相比训练机器学习模型,在 Prompt 方面一次成功的几率可能会高一些,但正如上所说, Prompt 是否一次完善并不重要。最重要的是层层迭代为您的应用程序找到有效 Prompt 的过程。原创 2023-10-02 18:58:47 · 215 阅读 · 0 评论 -
【Java-LangChain:面向开发者的提示工程-2】编写提示词原则
当使用 LLM 构建应用程序时,实践层面上很难第一次尝试就成功获得适合最终应用的 Prompt。但这并不重要,只要您有一个好的迭代过程来不断改进您的 Prompt,那么您就能够得到一个适合任务的 Prompt。虽然相比训练机器学习模型,在 Prompt 方面一次成功的几率可能会高一些,但正如上所说, Prompt 是否一次完善并不重要。最重要的是层层迭代为您的应用程序找到有效 Prompt 的过程。原创 2023-10-02 18:57:28 · 641 阅读 · 0 评论 -
【Java-LangChain:面向开发者的提示工程-1】简介
首先,我们会从提示词开始讲起,学习开发中用到的提示词最佳实践。最后会利用LLM创建一个自己的机器人。让你学习到LLM下如何取开发应用层内容,为你后续开发更复杂的应用打好基础。本课程主要为Java开发人员介绍ChatGPT提示词工程(Prompt Engineering),所以本课程后面所用到的工具都是Java技术栈的。学习本课程无需多少Java开发经验。不管你是Java老鸟还是Java新手,如果你对LLM感兴趣,想了解或转型LLM应用开发,本课程会为你提供帮助。原创 2023-10-02 18:56:24 · 247 阅读 · 0 评论