LangChain 安装和实践,使用月之暗面apikey

29 阅读4分钟

大预言模型是什么

大语言模型是一种人工智能模型,通常使用深度学习技术,比如神经网络,来理解和生成人类语言。这些模型的“大”在于它们的参数数量非常多,可以达到数十亿甚至更多,这使得它们能够理解和生成高度复杂的语言模 式。

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

image.png

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

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

image.png

安装 LangChain

有两个版本 python 和 node

pip install langchain

OpenAI API

要继续咱们的LangChain实战课,你需要对OpenAI的API有进一步的了解。因为,LangChain本质上就是对各种大模型提供的API的套 壳,是为了方便我们使用这些API,搭建起来的一些框架、模块和接口。

因此,要了解LangChain的底层逻辑,需要了解大模型的API的基本设计思路。而目前接口最完备的、同时也是最强大的大语言模型,当然是OpenAI提供的GPT家族模型。

调用Text模型

第1步,先注册好你的API Keyo

第2步,用pip install openai命令来安装OpenAI库。

第 3 步,导入 OpenAI API Key。

导入API Key有多种方式,其中之一是通过下面的代码:

import os
os.environ ["ORENAI_API_KEY,,1 ='你的Open API Key'

OpenAI库就会查看名为OPENAI_APLKEY的环境变量,并使用它的值作为API密钥。 也可以像下面这样先导入OpenAI库,然后指定api_key的值。

import openai
openai.api_key = 1 你的Open API Key'

此处 简化下 使用 月之暗面 API key 会赠送 15块钱

platform.moonshot.cn/console/api…

调用 Text 模型


from openai import OpenAI

client = OpenAI(
    api_key="你的_MOONSHOT_API_KEY",
    base_url="https://api.moonshot.cn/v1",
)

resp = client.chat.completions.create(
    model="moonshot-v1-8k",  # 也可用其它 moonshot 模型
    messages=[
        {"role": "user", "content": "请给我的花店起个名字"},
    ],
    temperature=0.8,
    max_tokens=60,
)

print(resp.choices[0].message.content)

运行结果

image.png

使用 langchain

import os
from langchain_openai import ChatOpenAI

os.environ["MOONSHOT_API_KEY"] = "你的_MOONSHOT_API_KEY"

llm = ChatOpenAI(
    model="moonshot-v1-8k",
    api_key=os.environ["MOONSHOT_API_KEY"],
    base_url="https://api.moonshot.cn/v1",
    temperature=0.8,
    max_tokens=60,
)

resp = llm.invoke("请给我的花店起个名字")
print(resp.content)

运行

image.png

调用 Chat 模型

官网例子

from openai import OpenAI
 
client = OpenAI(
    api_key = "$MOONSHOT_API_KEY",
    base_url = "https://api.moonshot.cn/v1",
)
 
response = client.chat.completions.create(
    model="kimi-k2-turbo-preview",
    messages=[
        {
            "role": "system",
            "content": "你是 Kimi,由 Moonshot AI 提供的人工智能助手,你更擅长中文和英文的对话。你会为用户提供安全,有帮助,准确的回答。同时,你会拒绝一切涉及恐怖主义,种族歧视,黄色暴力等问题的回答。Moonshot AI 为专有名词,不可翻译成其他语言。",
        },
        {"role": "user", "content": "你好,我叫李雷,1+1等于多少?"},
    ],
    temperature=0.6,
    stream=True,
)
 
collected_messages = []
for idx, chunk in enumerate(response):
    # print("Chunk received, value: ", chunk)
    chunk_message = chunk.choices[0].delta
    if not chunk_message.content:
        continue
    collected_messages.append(chunk_message)  # save the message
    print(f"#{idx}: {''.join([m.content for m in collected_messages])}")
print(f"Full conversation received: {''.join([m.content for m in collected_messages])}")

image.png

使用 langchain

pip install langchain langchain-openai openai

import os
from langchain_openai import ChatOpenAI
from langchain_core.messages import HumanMessage, SystemMessage

os.environ["MOONSHOT_API_KEY"] = "你的_MOONSHOT_API_KEY"

chat = ChatOpenAI(
    model="moonshot-v1-8k",
    api_key=os.environ["MOONSHOT_API_KEY"],
    base_url="https://api.moonshot.cn/v1",
    temperature=0.8,
    max_tokens=60,
)

messages = [
    SystemMessage(content="你是一个很棒的智能助手"),
    HumanMessage(content="请给我的花店起个名"),
]

response = chat.invoke(messages)

print(response.content)

image.png