LangChain系统安装与快捷入门+AI学中练 | 豆包MarsCode AI刷题

153 阅读5分钟

引言

今天开始LangChain实战课中LangChain系统安装与快捷入门的学习,希望通过这个笔记记录学习过程中的收获与疑问,做一个阶段性的记录与总结。

学习内容

  • LangChain系统安装与快捷入门
  • 对应的AI学中练

正文

现在我们开始正式记录课程内容。 首先,我们要了解一些AI中的常见术语。

  • 大语言模型

常见术语解析

大语言模型

大语言模型可以从字面上来进行理解。

  1. ”代表的是模型的规模大(模型的参数多,可以是几十亿甚至更多)
  2. 语言”代表的是模型的作用对象(使用深度学习技术,比如神经网络,来理解和生成人类语言)
  3. 模型”代表的是模型的本质(人工智能模型)

将大语言模型想象成一个巨大的预测机器,其训练过程主要基于“猜词” :给定一段文本的开头,它的任务就是预测下一个词是什么。模型会根据大量的训练数据(例如在互联网上爬取的文本),试图理解词语和词组在语言中的用法和含义,以及它们如何组合形成意义。它会通过不断地学习和调整参数,使得自己的预测越来越准确。

现实应用:输入法智能提示、AI助手智能对话

注意:

大语言模型并不完全理解语言,它们没有人类的情感、意识或理解力。它们只是通过复杂的数学函数学习到的语言模式,一个概率模型来做预测,所以有时候它们会犯错误,或者生成不合理甚至偏离主题的内容。


言尽于此,下面我们开始介绍LangChain。

LangChain

image.png

图1-1 GitHub上对LangChain的介绍标签

LangChain 是一个全方位的、基于大语言模型这种预测能力的应用开发工具,它的灵活性和模块化特性使得处理语言模型变得极其简便。不论你在何时何地,都能利用它流畅地调用语言模型,并基于语言模型的“预测”或者说“推理”能力开发新的应用。

LangChain的特性
  • 预构建链功能:比作乐高积木,无论你是新手还是经验丰富的开发者,都可以选择适合自己的部分快速构建项目。
  • 模块化组件:对于希望进行更深入工作的开发者,LangChain 提供的模块化组件则允许你根据自己的需求定制和创建应用中的功能链条。
LangChain支持的版本
  • Python版本
  • JavaScript版本

LangChain支持Python和JavaScript两个开发版本,我们要安装的Python版本并对其进行学习。

LangChain系统安装

第一步 下载langchian包

pip install langchain

安装带大语言模型

pip install langchain[llms]

第二步 更新langchain到最新版本

pip install --upgrade langchain

LangChain快速入门

通过 LangChain 调用 Text 和 Chat 模型

最后,让我们来使用LangChain来调用OpenAI的Text和Chat模型,完成了这两个任务,我们今天的课程就可以结束了!

调用 Text 模型

代码如下:

plain
复制代码
AI练中学
import os
os.environ["OPENAI_API_KEY"] = '你的Open API Key'
from langchain.llms import OpenAI
llm = OpenAI(  
    model="gpt-3.5-turbo-instruct",
    temperature=0.8,
    max_tokens=60,)
response = llm.predict("请给我的花店起个名")
print(response)

输出:

plain
复制代码
AI练中学
花之缘、芳华花店、花语心意、花风旖旎、芳草世界、芳色年华

这只是一个对OpenAI API的简单封装:先导入LangChain的OpenAI类,创建一个LLM(大语言模型)对象,指定使用的模型和一些生成参数。使用创建的LLM对象和消息列表调用OpenAI类的__call__方法,进行文本生成。生成的结果被存储在response变量中。没有什么需要特别解释之处。

调用 Chat 模型

代码如下:

plain
复制代码
AI练中学
import os
os.environ["OPENAI_API_KEY"] = '你的Open API Key'
from langchain.chat_models import ChatOpenAI
chat = ChatOpenAI(model="gpt-4",
                    temperature=0.8,
                    max_tokens=60)
from langchain.schema import (
    HumanMessage,
    SystemMessage
)
messages = [
    SystemMessage(content="你是一个很棒的智能助手"),
    HumanMessage(content="请给我的花店起个名")
]
response = chat(messages)
print(response)

这段代码也不难理解,主要是通过导入LangChain的ChatOpenAI类,创建一个Chat模型对象,指定使用的模型和一些生成参数。然后从LangChain的schema模块中导入LangChain的SystemMessage和HumanMessage类,创建一个消息列表。消息列表中包含了一个系统消息和一个人类消息。你已经知道系统消息通常用来设置一些上下文或者指导AI的行为,人类消息则是要求AI回应的内容。之后,使用创建的chat对象和消息列表调用ChatOpenAI类的__call__方法,进行文本生成。生成的结果被存储在response变量中。

AI学中练

"""
本文件是【LangChain系统安装和快速入门】章节的配套代码,课程链接:https://juejin.cn/book/7387702347436130304/section/7388069981520724003

OpenAI的Completions API已经在2023年7月完成最后一次更新并废弃,该接口仅适用于早期版本的少量模型("gpt-3.5-turbo-instruct", "davinci-002", "babbage-002");
相关功能可以被ChatCompletion接口替代。详情可见 https://platform.openai.com/docs/guides/completions。
Doubao API兼容最新版本的API调用,对废弃接口不再支持,本文件代码仅做示意。
"""

import os
from openai import OpenAI

# os.environ["OPENAI_API_KEY"] = '你的OpenAI API Key'
# os.environ["OPENAI_BASE_URL"] = 'OpenAI 的 API URL'

client = OpenAI()

response = client.completions.create(
    model=os.environ.get("LLM_MODELEND"),
    temperature=0.5,
    max_tokens=100,
    prompt="请给我的花店起个名",
)

print(response.choices[0].text.strip())

由于目前我OpenAI账号没有余额,所有没法进行模型的调用,这里比较可惜,不过在后续我会将输出结构进行一个展示的。