【AIGC】OpenAI 集成 Langchain 操作实战使用详解

【AIGC】OpenAI 集成 Langchain 操作实战使用详解

目录

一、前言

二、前置准备

2.1 安装 Langchain必须的依赖

2.1.1 python环境

2.1.2 langchain openai 环境

2.1.3 准备一个apikey

2.1.4 langchain 核心组件

三、Langchain 各组件使用

3.1 Chat models组件

3.1.1 Invocation 使用

3.1.1.1 结果解析

3.2 提示词模板

3.2.1 什么是提示词模板

3.2.2 创建提示词模板

3.2.2.1 PromptTemplate 简单提示词模板

3.2.2.2 ChatPromptTemplate 聊天提示词模板

3.2.2.3 MessagePlaceholer 聊天提示词模板

3.2.2.4 少样本提示词模板

3.2.2.5 示例选择器

3.3 memory组件

3.3.1 ChatMessageHistory 案例代码

3.3.2 流式输出案例代码

3.4 向量数据库与文档检索

3.4.1 安装向量数据库

3.4.2 代码操作示例

3.4.3 组合大模型组件使用

四、写在文末


一、前言

OpenAI作为人工智能领域的先锋,其提供的API为开发者打开了构建智能应用的大门。而作为LLM领域的佼佼者Langchain,随着RAG在众多的领域进行落地实践,Langchanin的热度也越来越高,然而,想要在实际项目中有效利用Langchanin提供的各种能力,了解如何使用Langchain进行集成是非常重要的。本文将详细介绍如何使用OpenAI集成Langchain,并使用Langchain的各种核心组件能力。

二、前置准备

在正式开始使用Langchain之前,你需要在本地准备基础的开发和运行环境,比如python环境、Langchain组件等,参考下面的操作步骤即可。

Read more

从0到1搞懂Linux动静态库制作与底层原理|开发者必备指南

从0到1搞懂Linux动静态库制作与底层原理|开发者必备指南

🔥个人主页:Cx330🌸 ❄️个人专栏:《C语言》《LeetCode刷题集》《数据结构-初阶》《C++知识分享》 《优选算法指南-必刷经典100题》《Linux操作系统》:从入门到入魔 《Git深度解析》:版本管理实战全解 🌟心向往之行必能至 🎥Cx330🌸的简介: 目录 前言: 一、先搞懂:Linux下的库是什么?二进制的“代码积木” 1.1 库的本质 1.2 库的分类与系统位置 1.3 预备工作:自定义库源码 二. 静态库:编译时链接,独立运行 2.1 整体图示:理清思路 2.2 静态库制作流程(Makefile 自动化 ,更简便) 2.3 静态库使用场景与命令

By Ne0inhk

Ubuntu 网络环境配置的完整教程

下面为你整理了Ubuntu 网络环境配置的完整教程,涵盖「基础网卡配置(临时/永久)、DNS 设置、代理配置、网络故障排查」,新手也能一步步操作,适配 Ubuntu 18.04/20.04/22.04 主流版本。 文章目录 * 一、先了解基础概念(新手必看) * 二、查看当前网络状态(第一步必做) * 三、基础网络配置(静态IP/动态IP) * 方式1:用 netplan 配置(Ubuntu 18.04+ 推荐) * 步骤1:编辑 netplan 配置文件 * 步骤2:配置内容(二选一) * 步骤3:应用配置(生效) * 方式2:

By Ne0inhk
Flutter 组件 markup_analyzer 适配鸿蒙 HarmonyOS 实战:文本标签解析引擎,构建高性能动态排版与语义化渲染架构

Flutter 组件 markup_analyzer 适配鸿蒙 HarmonyOS 实战:文本标签解析引擎,构建高性能动态排版与语义化渲染架构

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 组件 markup_analyzer 适配鸿蒙 HarmonyOS 实战:文本标签解析引擎,构建高性能动态排版与语义化渲染架构 前言 在鸿蒙(OpenHarmony)生态迈向深度内容分发、涉及富文本混排展示、自定义模板引擎或端侧跨端协议解析的背景下,如何将杂乱的标签数据高效转化为具备语义逻辑的 AST(抽象语法树),已成为决定应用排版性能与安全性的“逻辑枢纽”。在鸿蒙设备这类强调 AOT 极致执行速度与多维视窗适配的环境下,如果应用依然依赖基础的正则切割来处理动态标记,由于由于嵌套标签的递归复杂度,极易由于由于计算开销过大导致复杂长文阅读时的显著卡顿。 我们需要一种能够实现语法级扫描、支持自定义标签扩展且具备错误容错能力的解析引擎。 markup_analyzer 为 Flutter 开发者引入了轻量级且工业标准的标签分析方案。它通过词法扫描(Lexer)与语法构造,将零散的 Markup 字符串重组为具有层级关系的节点树。在适配到鸿蒙 H

By Ne0inhk
【Linux】进程间通信——System V共享内存

【Linux】进程间通信——System V共享内存

🔥 个人主页:大耳朵土土垚🔥 所属专栏:Linux系统编程 这里将会不定期更新有关Linux的内容,欢迎大家点赞,收藏,评论🥳🥳🎉🎉🎉 文章目录 * 前言 * 1. 基本原理 * 2. 数据结构 * 3. 创建与使用 * ✨进程间通信实例 * 4. 共享内存特点 * 5. 结语 前言 System V是一种在Linux系统中用于进程间通信(IPC)的机制。它提供了几种不同的通信方式,包括共享内存、消息队列和信号量。以下是关于Linux进程间通信System V共享内存的详细解释: 1. 基本原理 System V共享内存是IPC(进程间通信)机制的一部分,它允许两个或多个进程共享一段物理内存。这段内存可以被所有参与的进程读取和写入。这种方式通常比较高效,因为进程可以直接对内存进行读写操作,而不需要通过内核进行数据传输。如下图所示: 2. 数据结构 System V共享内存可以在内存中创建多个,所以操作系统需要借助一种数据结构来管理它。System V共享内存使用struct

By Ne0inhk