Skip to main content

将智谱AI集成到LangChain

Project description

为什么要开发这个包?

PyPI version

为了方便在 langchain 中使用,langchain_zhipu 直接使用官方 HTTP 接口实现,并避免了如下的现存问题:

  • 问题 1: 智谱 AI 的官方 SDK 使用了 pydantic v2,这与 langchain(尤其是 langserve)不兼容
  • 问题 2: langchain.community 的国内包更新不及时,无法在 langchain 的 LCEL 语法中使用

能力支持

已支持全部 langchain 接口

  1. invoke
  2. ainvoke
  3. batch
  4. abatch
  5. stream
  6. astream
  7. astream_events
  8. 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 版本。

代码例子


官方接口指南 智谱开放平台

简单的例子

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


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)

Uploaded Source

Built Distribution

langchain_zhipu-4.1.8-py3-none-any.whl (18.9 kB view details)

Uploaded Python 3

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

Hashes for langchain_zhipu-4.1.8.tar.gz
Algorithm Hash digest
SHA256 78bc18cb049a7ec27505a76015e4e7a59abf06c0a3e98a1863802dccfb890cd7
MD5 d4d6bb493804688f4b4b481026ab2fcd
BLAKE2b-256 9b3f2e27b1e7d675ec34461cea2c2309ea52c1122eafc921c0da8742fd6beaab

See more details on using hashes here.

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

Hashes for langchain_zhipu-4.1.8-py3-none-any.whl
Algorithm Hash digest
SHA256 c1e7aa7d17ad9eb9e21c110998c2b02f57d5d0dfed452ee4501e4dec9e20197a
MD5 36c12470785d6502fc471a31c08669e7
BLAKE2b-256 82ef088fb4967c8a09506072d3cfd3ee1c56b8c01ec21c65f4c3454040488057

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page