将智谱AI集成到LangChain
Project description
为什么要开发这个包?
为了方便在 langchain 中使用,langchain_zhipu 直接使用官方 HTTP 接口实现,并避免了如下的现存问题:
- 问题 1: 智谱 AI 的官方 SDK 使用了 pydantic v2,这与 langchain(尤其是 langserve)不兼容
- 问题 2: langchain.community 的国内包更新不及时,无法在 langchain 的 LCEL 语法中使用
能力支持
已支持全部 langchain 接口
- invoke
- ainvoke
- batch
- abatch
- stream
- astream
- astream_events
- asteram_log
已支持模型能力
- 已支持生成模型:"glm-3-turbo", "glm-4", "glm-4v"
- 已支持向量模型:"embedding-2"
- 已支持官方知识库管理能力:对知识库、文档、应用做增删改查
- 已支持基于官方知识库的大模型对话
- 支持工具回调:普通工具,以及在线知识库和网络搜索
- 支持智能体
- 支持 RAG
使用
配置
可以将申请到的 API_KEY
配置到环境变量 ZHIPUAI_API_KEY
。
建议使用 .env
文件来管理环境变量,这需要安装 python_dotenv
包:
pip install python_dotenv
你的 .env 文件:
ZHIPUAI_API_KEY="你的KEY"
然后在你的代码目录中:
# 加载 .env 到环境变量
import os
from dotenv import load_dotenv, find_dotenv
load_dotenv(find_dotenv(), override=True)
安装 langchain_zhipu
pip install langchain langchain_zhipu
其中,langchain 只要 v0.1.0
,而 langchain_zhipu 最好安装最新的 4.1.x 版本。
代码例子
- 基本用法 usage.ipynb
- 智能体 agent.ipynb
- 向量模型 embedding.ipynb
- 模型统计 tokens.ipynb
- 知识库 knowledge.ipynb
- 知识库应用 knowledge_app.ipynb
- textlong+智谱
官方接口指南 智谱开放平台
简单的例子
from langchain_zhipu import ChatZhipuAI
llm = ChatZhipuAI()
# invoke
llm.invoke("hi")
# stream
for s in llm.stream("hi"):
print(s)
# astream
async for s in llm.astream("hi"):
print(s)
retrieval 工具
from langchain_zhipu import convert_to_retrieval_tool
llm.bind(tools=[convert_to_retrieval_tool(knowledge_id="1772979648448397312")]).invoke("你知道马冬梅住哪里吗?")
web_search 工具
from langchain_zhipu import convert_to_web_search_tool
llm.bind(tools=[convert_to_web_search_tool(search_query="周星驰电影")]).invoke("哪部电影好看?")
function 工具
from langchain_core.utils.function_calling import convert_to_openai_tool
from langchain.tools import tool
@tool
def search(query: str) -> str:
"""查询 langchan 资料; args: query 类型为字符串,描述用户的问题."""
return "langchain_chinese 是一个为中国大模型优化的langchain模块"
llm.bind(tools=[convert_to_openai_tool(search)]).invoke("langchain_chinese是啥?请查询本地资料回答。")
使用 glm-4v
from langchain_zhipu import ChatZhipuAI
from langchain_core.prompts import ChatPromptTemplate
llm4v = ChatZhipuAI(model="glm-4v")
prompt = ChatPromptTemplate.from_messages([
("human", [
{
"type": "text",
"text": "图里有什么"
},
{
"type": "image_url",
"image_url": {
"url" : "https://img1.baidu.com/it/u=1369931113,3388870256&fm=253&app=138&size=w931&n=0&f=JPEG&fmt=auto?sec=1703696400&t=f3028c7a1dca43a080aeb8239f09cc2f"
}
}
]),
])
(prompt|llm4v).invoke({})
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
langchain_zhipu-4.1.8.tar.gz
(16.2 kB
view details)
Built Distribution
File details
Details for the file langchain_zhipu-4.1.8.tar.gz
.
File metadata
- Download URL: langchain_zhipu-4.1.8.tar.gz
- Upload date:
- Size: 16.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.3 CPython/3.10.9 Darwin/23.5.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 78bc18cb049a7ec27505a76015e4e7a59abf06c0a3e98a1863802dccfb890cd7 |
|
MD5 | d4d6bb493804688f4b4b481026ab2fcd |
|
BLAKE2b-256 | 9b3f2e27b1e7d675ec34461cea2c2309ea52c1122eafc921c0da8742fd6beaab |
File details
Details for the file langchain_zhipu-4.1.8-py3-none-any.whl
.
File metadata
- Download URL: langchain_zhipu-4.1.8-py3-none-any.whl
- Upload date:
- Size: 18.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.3 CPython/3.10.9 Darwin/23.5.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c1e7aa7d17ad9eb9e21c110998c2b02f57d5d0dfed452ee4501e4dec9e20197a |
|
MD5 | 36c12470785d6502fc471a31c08669e7 |
|
BLAKE2b-256 | 82ef088fb4967c8a09506072d3cfd3ee1c56b8c01ec21c65f4c3454040488057 |