langchain 入门指南(一)- 准备 API KEY

本文涉及的产品
阿里云百炼推荐规格 ADB PostgreSQL,4核16GB 100GB 1个月
简介: langchain 入门指南(一)- 准备 API KEY

在开始之前,我们需要先准备一个可以调用 OpenAPI 的 key,又或者是其他 LLM 的 key。

因为墙的原因,所以没有办法直接使用 OpenAI 的 key 来调用,但是我们可以使用一些替代品或者代理,可选的有:

依赖

我们可以使用 openai 的 SDK 来调用它们的接口,同时也可以使用 langchain 这个库来调用它们的接口。

不过本系列文章都会基于 langchain 来进行实现。langchain 是一个基于 OpenAPI 的封装,可以方便的调用 OpenAPI 的接口。

同时很多国内的大模型也支持通过 langchain 的 API 来使用,非常方便。

通过 OpenAI SDK 使用

目前市面上大多数的 LLM 都支持 OpenAI 的接口,所以我们可以通过 OpenAI 的 SDK 来调用这些接口。

需要注意的是:

  1. 模型:不同的 LLM 有不同的模型,比如零一万物的模型是 yi-large,OpenAI 的模型是 gpt-3.5-turbo,智谱清言的模型是 glm-4
  2. base_url:不同的 LLM 有不同的 base_url,需要根据不同的 LLM 来设置。
  3. api_key:不同的 LLM 有不同的 api_key

下面是一个使用 OpenAI SDK 的例子:

依赖安装:

pip install openai

零一万物

from openai import OpenAI
client = OpenAI(
    api_key='your key',
    base_url='https://api.lingyiwanwu.com/v1'
)
completion = client.chat.completions.create(
    model="yi-large",
    messages=[{"role": "user", "content": "Hi, who are you?"}]
)
print(completion.choices[0].message.content)

OpenAI HK

from openai import OpenAI
client = OpenAI(
    api_key='your key',
    base_url="https://api.openai-hk.com/v1"
)
completion = client.chat.completions.create(
    model="gpt-3.5-turbo",
    messages=[{"role": "user", "content": "Hi, who are you?"}]
)
print(completion.choices[0].message.content)

智谱清言

from openai import OpenAI
client = OpenAI(
    api_key='your key',
    base_url='https://open.bigmodel.cn/api/paas/v4/'
)
completion = client.chat.completions.create(
    model="glm-4",
    messages=[{"role": "user", "content": "Hi, who are you?"}]
)
print(completion.choices[0].message.content)

通过 langchain 使用

依赖安装:

pip install langchain_openai

跟上面的例子差不多,修改一下 base_urlmodel 以及 api_key 即可。

零一万物

from langchain_openai import ChatOpenAI
from langchain_core.messages import HumanMessage, SystemMessage
chat = ChatOpenAI(
    model="yi-large",
    temperature=0.3,
    max_tokens=200,
    api_key='your key',
    base_url="https://api.lingyiwanwu.com/v1"
)
messages = [
    SystemMessage(content="你是一名精通了 golang 的专家"),
    HumanMessage(content="写一个  golang 的 hello world 程序"),
]
response = chat.invoke(messages)
print(response.content)

OpenAI HK

from langchain_openai import ChatOpenAI
from langchain_core.messages import HumanMessage, SystemMessage
chat = ChatOpenAI(
    model="gpt-3.5-turbo",
    temperature=0.3,
    max_tokens=200,
    api_key="your key",
    base_url="https://api.openai-hk.com/v1"
)
messages = [
    SystemMessage(content="你是一名精通了 golang 的专家"),
    HumanMessage(content="写一个  golang 的 hello world 程序"),
]
response = chat.invoke(messages)
print(response.content)

智谱清言

from langchain_openai import ChatOpenAI
from langchain_core.messages import HumanMessage, SystemMessage
chat = ChatOpenAI(
    model="glm-4",
    temperature=0.3,
    max_tokens=200,
    api_key="your key",
    base_url='https://open.bigmodel.cn/api/paas/v4/'
)
messages = [
    SystemMessage(content="你是一名精通了 golang 的专家"),
    HumanMessage(content="写一个  golang 的 hello world 程序"),
]
response = chat.invoke(messages)
print(response.content)

环境变量指定 API KEY 以及 BASE URL

我们可以通过环境变量来指定 api_key 以及 base_url,这样我们就不需要在代码中指定了。

export OPENAI_API_KEY="your key"
export OPENAI_BASE_URL="https://api.lingyiwanwu.com/v1"

这样我们就可以直接使用 langchain 来调用了,当然,传递给 ChatOpenAImodel 参数还是得指定的。

from langchain_openai import ChatOpenAI
from langchain_core.messages import HumanMessage, SystemMessage
chat = ChatOpenAI(
    model="yi-large",
    temperature=0.3,
    max_tokens=200
)
messages = [
    SystemMessage(content="你是一名精通了 golang 的专家"),
    HumanMessage(content="写一个  golang 的 hello world 程序"),
]
response = chat.invoke(messages)
print(response.content)

注意事项

  1. 截止到目前为止(2024-07-15),langchain 还在一个很频繁的更新阶段,所以可能会有一些 API 的变动,所以本文的一些 langchain 示例代码可能在未来会不可用。
相关实践学习
阿里云百炼xAnalyticDB PostgreSQL构建AIGC应用
通过该实验体验在阿里云百炼中构建企业专属知识库构建及应用全流程。同时体验使用ADB-PG向量检索引擎提供专属安全存储,保障企业数据隐私安全。
AnalyticDB PostgreSQL 企业智能数据中台:一站式管理数据服务资产
企业在数据仓库之上可构建丰富的数据服务用以支持数据应用及业务场景;ADB PG推出全新企业智能数据平台,用以帮助用户一站式的管理企业数据服务资产,包括创建, 管理,探索, 监控等; 助力企业在现有平台之上快速构建起数据服务资产体系
目录
相关文章
|
22天前
|
前端开发 机器人 API
前端大模型入门(一):用 js+langchain 构建基于 LLM 的应用
本文介绍了大语言模型(LLM)的HTTP API流式调用机制及其在前端的实现方法。通过流式调用,服务器可以逐步发送生成的文本内容,前端则实时处理并展示这些数据块,从而提升用户体验和实时性。文章详细讲解了如何使用`fetch`发起流式请求、处理响应流数据、逐步更新界面、处理中断和错误,以及优化用户交互。流式调用特别适用于聊天机器人、搜索建议等应用场景,能够显著减少用户的等待时间,增强交互性。
143 2
|
3月前
langchain 入门指南 - 使用 Agent
langchain 入门指南 - 使用 Agent
145 0
|
28天前
|
开发框架 .NET API
RESTful API 设计与实现:C# 开发者的一分钟入门
【10月更文挑战第5天】本文从零开始,介绍了如何使用 C# 和 ASP.NET Core 设计并实现一个简单的 RESTful API。首先解释了 RESTful API 的概念及其核心原则,然后详细说明了设计 RESTful API 的关键步骤,包括资源识别、URI 设计、HTTP 方法选择、状态码使用和错误处理。最后,通过一个用户管理 API 的示例,演示了如何创建项目、定义模型、实现控制器及运行测试,帮助读者掌握 RESTful API 的开发技巧。
49 7
|
3月前
|
安全 API 数据库
langchain 入门指南 - 函数调用
langchain 入门指南 - 函数调用
115 1
|
3月前
|
机器学习/深度学习
langchain 入门指南 - In-context Learning
langchain 入门指南 - In-context Learning
88 0
|
1月前
|
API
LangChain-19 TokenUsage 通过回调函数 只需一行 统计当前调用API的花费情况 包含Tokens数量和Cost花费
LangChain-19 TokenUsage 通过回调函数 只需一行 统计当前调用API的花费情况 包含Tokens数量和Cost花费
29 3
LangChain-19 TokenUsage 通过回调函数 只需一行 统计当前调用API的花费情况 包含Tokens数量和Cost花费
|
22天前
|
人工智能 前端开发 JavaScript
前端大模型入门(二):掌握langchain的核心Runnable接口
Langchain.js 是 Langchain 框架的 JavaScript 版本,专为前端和后端 JavaScript 环境设计。最新 v0.3 版本引入了强大的 Runnable 接口,支持灵活的执行方式和异步操作,方便与不同模型和逻辑集成。本文将详细介绍 Runnable 接口,并通过实现自定义 Runnable 来帮助前端人员快速上手。
|
1月前
|
机器学习/深度学习 算法 API
机器学习入门(五):KNN概述 | K 近邻算法 API,K值选择问题
机器学习入门(五):KNN概述 | K 近邻算法 API,K值选择问题
|
3月前
|
存储 机器学习/深度学习 传感器
langchain 入门指南 - 实现一个多模态 chatbot
langchain 入门指南 - 实现一个多模态 chatbot
108 0
|
3月前
|
前端开发 人机交互
langchain 入门指南 - ReAct 模式
langchain 入门指南 - ReAct 模式
87 1