官方文档(第三方集成)
https://docs.langchain.com/oss/python/integrations/chat
from langchain_ollama import ChatOllama model = ChatOllama(model="qwen3") question = "你好,请你介绍一下你自己。" result = model.invoke(question) print(result.content)
pip install langchain_community
import os
from dotenv import load_dotenv
from langchain_community.chat_models.tongyi import ChatTongyi
load_dotenv(override=True)
QWEN_API_KEY = os.getenv("QWEN_API_KEY")
os.environ["DASHSCOPE_API_KEY"] = QWEN_API_KEY
model = ChatTongyi()
question = "你好,请你介绍一下你自己。"
result = model.invoke(question)
print(result.content)
pip install -U httpx httpx-sse PyJWT
from langchain_community.chat_models import ChatZhipuAI from langchain.messages import AIMessage, HumanMessage, SystemMessage import os os.environ["ZHIPUAI_API_KEY"] = "zhipuai_api_key" model = ChatZhipuAI( model="glm-plus", temperature=0.5, )
from langchain.messages import HumanMessage, AIMessage, SystemMessage
# 其中:
# HumanMessage表示用户提出的问题
# AIMessage表示大型模型的回答
# SystemMessage表示系统提示
例如:
system_msg = SystemMessage("你叫小伍,是一名乐于助人的助手。")
human_msg = HumanMessage("你好,好久不见,请介绍下你自己。")
messages = [system_msg, human_msg]
# 将记忆信息发送给模型
response = model.invoke(messages)
model.invoke(messages)
for chunk in model.stream("你好,好久不见"):
print(chunk.text, end="|", flush=True)
model.batch
responses = model.batch([
"请介绍下你自己。",
"请问什么是机器学习?",
"你知道机器学习和深度学习的区别吗?"
])
for response in responses:
print(response)
model.batch_as_completed
for response in model.batch_as_completed([
"请介绍下你自己。",
"请问什么是机器学习?",
"你知道机器学习和深度学习的区别吗?"
]):
print(response)
model.batch(
list_of_inputs,
config={
'max_concurrency': 5, # 最多并行 5 个请求
}
)
- TypedDict(轻型类型约束)
- JSON Schema(与前端/后端及跨语言接口最广泛使用)
其中,Pydantic 提供了字段验证、默认值设定、描述信息、多层次嵌套等高级特性,是生产环境中优先选择的工具。
例如:
from pydantic import BaseModel, Field
class Movie(BaseModel):
"""一部包含详细信息的电影."""
title: str = Field(..., description="电影的名称")
year: int = Field(..., description="电影发行的年份")
director: str = Field(..., description="电影的导演")
rating: float = Field(..., description="电影的评分,满分10分")
在此示例中,我们利用 Pydantic 的 BaseModel 来定义一个严格的数据结构。每个属性都指定了其数据类型(比如 str、int、float),并通过 Field(…, description=“…”)提供具体的描述。基于此,当模型作出回应时,LangChain 会确保 LLM 的输出能够正确填入这些字段。
然后,通过使用 with_structured_output 方法可以指导模型产生结构化的输出:
model_with_structure = model.with_structured_output(Movie)
response = model_with_structure.invoke("提供关于电影 Inception 的详情")
print(response)
5.【基础实践】构建支持流式响应的多轮问答机器人
# from langchain_deepseek import ChatDeepSeek
from langchain.messages import HumanMessage, AIMessage, SystemMessage
# 1. 初始化模型(LangChain 1.0 接口)
# model = ChatDeepSeek(model="deepseek-chat")
from langchain_community.chat_models.tongyi import ChatTongyi
import os
from dotenv import load_dotenv
load_dotenv(override=True)
QWEN_API_KEY = os.getenv("QWEN_API_KEY")
os.environ["DASHSCOPE_API_KEY"] = QWEN_API_KEY
model = ChatTongyi()
# 2. 初始化系统提示(System Prompt)
system_message = SystemMessage(
content="我叫小智,是一位乐于助人的智能助手。请在交流过程中保持温和、耐心的态度。"
)
# 3. 初始化消息历史记录
messages = [system_message]
print("???? 输入 exit 退出对话\n")
# 4. 主循环(支持多轮对话 + 流式输出)
while True:
user_input = input("???? 你:")
if user_input.lower() in {"exit", "quit"}:
print("???? 对话结束,再见!")
break
# 添加用户消息
messages.append(HumanMessage(content=user_input))
# 实时输出模型生成的内容
print("???? 小智:", end="", flush=True)
full_reply = ""
# ? LangChain 1.0 标准方法:流式输出
for chunk in model.stream(messages):
if chunk.content:
print(chunk.content, end="", flush=True)
full_reply += chunk.content
print("\n" + "-" * 40) # 分割线
# 添加 AI 回复消息
messages.append(AIMessage(content=full_reply))
# 维持消息长度(仅保留最近50轮)
messages = messages[-50:]
三、Agent 开发
1、create_agent API 极简调用流程
import os
from dotenv import load_dotenv
from langchain_community.chat_models.tongyi import ChatTongyi
load_dotenv(override=True)
QWEN_API_KEY = os.getenv("QWEN_API_KEY")
os.environ["DASHSCOPE_API_KEY"] = QWEN_API_KEY
model = ChatTongyi()
# 1. 导入相关库
from langchain.agents import create_agent
# from langchain_deepseek import ChatDeepSeek
from langchain_community.tools.tavily_search import TavilySearchResults
# 2. 导入模型和工具
web_search = TavilySearchResults(max_results=2)
# model = ChatDeepSeek(model="deepseek-chat")
# 3. 创建Agent
agent = create_agent(
model=model,
tools=[web_search],
system_prompt="你是一位多功能的智能助手,能够运用工具协助用户解决问题。"
)
# 4. 运行Agent获取结果
result = agent.invoke(
{"messages": [{"role": "user", "content": "请帮我查询2024年诺贝尔物理学奖得主是谁?"}]}
)
# result['messages'][-1].content
2、模型使用模式
create_agent支持两种模型使用方式:
静态模型(Static Model) 与 动态模型(Dynamic Model)。
(1)静态模型
静态模型在创建 Agent 时设置一次,并在整个执行过程中保持不变。这种模式简单可靠,适用于实验和常规生产环境。例如
from langchain.agents import create_agent
agent = create_agent(
"deepseek:deepseek-chat",
tools=tools
)
或
from langchain_deepseek import ChatDeepSeek
from langchain.agents import create_agent
model = ChatDeepSeek(
model="deepseek-chat",
temperature=0.1,
max_tokens=1000,
timeout=30
)
agent = create_agent(model, tools=tools)
(2)动态模型
动态模型是一种更为先进的机制,允许 Agent 在运行时依据任务背景自动更换模型,从而实现智能模型路由和成本优化。比如,在对话初期使用轻量级模型(如 gpt-4o-mini)以减少开销;随着上下文的复杂化或任务难度的增加,自动切换至性能更强的模型(如 gpt-4o)。这时就需要利用中间件的**@wrap_model_call装饰器**。
3、工具调用
(1)工具列表
网址:
工具 | LangChain 中文文档
(2)工具调用
from langchain_community.tools.tavily_search import TavilySearchResults
web_search = TavilySearchResults(max_results=2)
web_search.invoke("请问截至目前,2025年诺贝尔奖颁发了几个?")
agent默认采用function calling模式
(3)Agent输出
输出通常包含四个部分,分别是
用户输入:HumanMessage,
大模型调用工具:AIMessage,
工具调用反馈:ToolMessage,和
AI最终回应:AIMessage
HumanMessage(content='请帮我查询2024年诺贝尔物理学奖得主是谁?', additional_kwargs={}, response_metadata={}, id='b4b46bbb-1b6d-4c84-bfb4-65c0a36a0bfc'),
AI Message(content='', additional_kwargs={'tool_calls': [{'function': {'arguments': '{"query": "2024年诺贝尔物理学奖得主是谁?"}', 'name': 'tavily_search_results_json'}, 'id': 'call_fa8347f6a4d2405c8e7bb6', 'index': 0, 'type': 'function'}]}, response_metadata={'model_name': 'qwen-turbo', 'finish_reason': 'tool_calls', 'request_id': '4f296922-47d2-4cd3-b499-cc384934f4f0', 'token_usage': {'input_tokens': 222, 'output_tokens': 34, 'prompt_tokens_details': {'cached_tokens': 0}, 'total_tokens': 256}}, id='lc_run--bd3a09d6-2784-46f2-8206-35ef0b6c8a7d-0', tool_calls=[{'name': 'tavily_search_results_json', 'args': {'query': '2024年诺贝尔物理学奖得主是谁?'}, 'id': 'call_fa8347f6a4d2405c8e7bb6', 'type': 'tool_call'}])
当前位置:首页 > 新闻中心 > 媒体聚焦 > 正文
发布日期:2024-10-10 来源:上海科技
当地时间10月8日,瑞典皇家科学院宣布,将2024年诺贝尔物理学奖授予John J.Hopfield和Geoffrey E.Hinton,以表彰他们在“利用人工神经网络进行机器学习”的基本发现和创造。
此前,诺贝尔物理学奖已颁发给225位得主。由于约翰·巴丁(John Bardeen)曾两次获奖,因此自1901年以来,共有224人获得过诺贝尔物理学奖。自1901年以来,诺贝尔物理学奖已颁发117次。
据诺贝尔奖官方网站消息,2024年每项诺贝尔奖的奖金为1100万瑞典克朗(约等于745万元人民币)。在百余年中,物理学奖是华人获奖最多的奖项,李政道、杨振宁、丁肇中、朱棣文、崔琦和高琨等华人科学家均获此荣誉。
诺贝尔物理学奖是根据诺贝尔1895年的遗嘱而设立的五个诺贝尔奖之一,旨在奖励那些对人类物理学领域作出杰出贡献的科学家。以下是近五年来物理学奖获奖名单:
【纠错】 【推荐】 【打印】;) 【关闭】;)
[](首页 资讯 快讯 行情 日历 APP VIP会员 大师课 生活家 登录 / 注册 940 收藏 Image 1: qrcode []())
2024年诺贝尔物理学奖颁给了两位AI教父!
Image 2: article.author.display_name张雅琦 2024-10-08 13:43
诺奖委员会表示:“两位诺贝尔物理学奖得主利用了物理学方法来探索信息的特性,建立了为当前强大的机器学习奠定基础的方法。”
人工智能界迎来了一个历史性的时刻!周二,2024年诺贝尔物理学奖授予了AI教父。
诺贝尔物理学委员会(Nobel Committee for Physics)宣布,授予John Joseph Hopfield和Geoffrey E. Hinton诺贝尔物理学奖,以表彰他们在“利用人工神经网络实现机器学习”的基础性发现和发明。
2024年诺贝尔物理学奖颁发给了John J. Hopfield和Geoffrey E. Hinton,以表彰他们在“利用人工神经网络进行机器学习的基本发现和创新”方面的贡献。这两位研究者的成果为现代高效的机器学习系统建立了基石。
众所周知,能够调用外部工具,是大型模型发展成为智能实体的重要环节。
Agent 如果没有能力使用外部工具,那么大型模型就仅仅是一个基础的聊天机器人,甚至无法完成像查询天气这样的简单任务。由于底层技术的约束,大型模型自身无法直接与外部工具通讯。因此,Function calling 采用的方法是建立一个外部函数,function 作为中介,一端接收大型模型的请求,另一端调用外部工具,从而使大型模型能够间接地调用外部工具。
def get_weather(loc):
"""
查询即时天气函数
:param loc: 必需参数,字符串格式,指明查询天气的具体城市名,
注意,中国城市需使用相应城市的英文名,比如若要查询北京市的天气,则loc参数应填入'Beijing';
:return:通过OpenWeather API获取的即时天气数据,具体的URL请求路径为:https://api.openweathermap.org/data/2.5/weather
返回的数据为解析后的JSON格式,并以字符串形式展示,内含所有关键的天气详情
"""
# 第一步. 构建请求
url = "https://api.openweathermap.org/data/2.5/weather"
# 第二步. 设置查询参数
params = {
"q": loc,
"appid": os.getenv("OPENWEATHER_API_KEY"), # 输入API密钥
"units": "metric", # 采用摄氏度而非华氏度
"lang":"zh_cn" # 输出语言设定为简体中文
}
# 第三步. 发送GET请求
response = requests.get(url, params=params)
# 第四步. 解析响应
data = response.json()
return json.dumps(data)
使用langchain装饰器@tool
from langchain.tools import tool
@tool
def get_weather(loc):
"""
查询即时天气函数
:param loc: 必要参数,字符串类型,用于表示查询天气的具体城市名称,\
注意,中国的城市需要用对应城市的英文名称代替,例如如果需要查询北京市天气,则loc参数需要输入'Beijing';
:return:OpenWeather API查询即时天气的结果,具体URL请求地址为:https://api.openweathermap.org/data/2.5/weather\
返回结果对象类型为解析之后的JSON格式对象,并用字符串形式进行表示,其中包含了全部重要的天气信息
"""
# Step 1.构建请求
url = "https://api.openweathermap.org/data/2.5/weather"
# Step 2.设置查询参数
params = {
"q": loc,
"appid": os.getenv("OPENWEATHER_API_KEY"), # 输入API key
"units": "metric", # 使用摄氏度而不是华氏度
"lang":"zh_cn" # 输出语言为简体中文
}
# Step 3.发送GET请求
response = requests.get(url, params=params)
# Step 4.解析响应
data = response.json()
return json.dumps(data)
# 1. 导入所需库
from langchain.agents import create_agent
from langchain_deepseek import ChatDeepSeek
from langchain_community.tools.tavily_search import TavilySearchResults
# 2. 加载模型
model = ChatDeepSeek(model="deepseek-chat")
# 3. 创建Agent
agent = create_agent(
model=model,
tools=[get_weather],
system_prompt="您是一位多功能的智能助理,能够调用工具来辅助解决用户的问题。"
)
# 4. 执行Agent获取结果
result = agent.invoke(
{"messages": [{"role": "user", "content": "请问北京今天的天气怎么样?"}]}
)
对于create_agent API而言,其工具调用的核心机制也是基于React循环调用模式,即在简短的推理过程和目标导向的工具调用间轮换,并将获得的观测结果反馈至后续决策中,直至得出最终答案。此模式具备以下特点:
1、并联调用
result = agent.invoke(请问今日杭州和南昌哪处更寒冷?
)AIMessage同时调用两次工具
tool_calls=[{'name': 'get_weather', 'args': {'loc': 'Hangzhou'}, 'id': 'call_00_mgmyqmNFMZT3VJRaGCtKrT3Z', 'type': 'tool_call'}, {'name': 'get_weather', 'args': {'loc': 'Nanchang'}, 'id': 'call_01_7LMEpHXEuKf289QX1uw2iIoE', 'type': 'tool_call'}]
工具返回两份ToolMessage
2、调用多种工具
新增一项文件写入工具
@tool
def write_file(content: str) -> str:
"""
将给定内容记录至本地文件。
:param content: 必需参数,字符串形式,指明需写入文档的具体内容。
:return: 写入成果提示信息。
"""
try:
# ? 始终先设定文件名(避免未绑定变量)
timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
filename = f"output_{timestamp}.txt"
# 记录文件
with open(filename, "w", encoding="utf-8") as f:
f.write(content)
abs_path = os.path.abspath(filename)
return f"? 已顺利完成本地文件写入:{abs_path}"
except Exception as e:
return f"? 文件记录失败:{str(e)}"
用户提问
result = agent.invoke(
{"messages": [{"role": "user", "content": "请协助查询天津、石家庄、上海等地区的天气状况,并记录至本地文件。"}]}
)
此时将返回八项信息,涵盖:
HumanMessage用户询问
AIMessage调用查询天气工具
ToolMessage调用三次,反馈三个地区的数据
AIMessage调用记录文件工具
ToolMessage反馈成功记录
AIMessage反馈最终结果
4、记忆管理
(1)近期记忆
存储于内存之中,运用langgraph里的InMemorySaver,在建立agent时需提供checkpointer,并且在调用时需传递一个config,至少包含一个thread_id(标识将记忆存储于哪个对话中)
from langgraph.checkpoint.memory import InMemorySaver
checkpointer = InMemorySaver()
tools = [get_weather]
agent = create_agent(model=model,
tools=tools,
checkpointer=checkpointer)
config = {
"configurable": {
"thread_id": "1"
}
}
response = agent.invoke(
{"messages": [{"role": "user", "content": "你好,我叫陈明,很久不见了!"}]},
config
)
response['messages']
利用get_state获取当前对话状态
latest = agent.get_state(config)
latest输出
StateSnapshot(values={'messages': [HumanMessage(content='你好,我叫陈明,许久未见!', additional_kwargs={}, response_metadata={}, id='0bcbd429-e2c5-4078-ae2e-342cd3ded21d'), AIMessage(content='你好陈明!非常高兴遇见你!尽管这可能是我们的首次交谈,但我仍感到愉快能与你交流。你有需要我帮忙的事项吗?例如查询天气详情,或其他问题都可向我询问!', additional_kwargs={'refusal': None}, response_metadata={'token_usage': {'completion_tokens': 37, 'prompt_tokens': 251, 'total_tokens': 288, 'completion_tokens_details': None, 'prompt_tokens_details': {'audio_tokens': None, 'cached_tokens': 0}, 'prompt_cache_hit_tokens': 0, 'prompt_cache_miss_tokens': 251}, 'model_provider': 'deepseek', 'model_name': 'deepseek-chat', 'system_fingerprint': 'fp_ffc7281d48_prod0820_fp8_kvcache', 'id': '620f39da-3567-4b1e-8c05-add3105d60e2', 'finish_reason': 'stop', 'logprobs': None}, id='lc_run--dde8ba3d-58c6-494e-baf4-cf0023ac06f9-0', usage_metadata={'input_tokens': 251, 'output_tokens': 37, 'total_tokens': 288, 'input_token_details': {'cache_read': 0}, 'output_token_details': {}})]}, next=(), config={'configurable': {'thread_id': '1', 'checkpoint_ns': '', 'checkpoint_id': '1f0b3e18-edee-6355-8001-e32b35d3d174'}}, metadata={'source': 'loop', 'step': 1, 'parents': {}}, created_at='2025-10-28T09:36:19.447074+00:00', parent_config={'configurable': {'thread_id': '1', 'checkpoint_ns': '', 'checkpoint_id': '1f0b3e18-d94f-633c-8000-b4ca61eb2816'}}, tasks=(), interrupts=())
再次进行交流时,直接输入线程ID,即可调用之前的对话记录:
response = agent.invoke(
{"messages": [{"role": "user", "content": "你好,请问你还记得我的名字是什么吗?"}]},
config
)
若更新线程ID,则会重启对话:
config2 = {
"configurable": {
"thread_id": "2"
}
}
存储于本地(文档、数据库)
在对LangChain 1.0有一定了解的基础上,对于开发者而言,还需深入学习和掌握LangChain Agent必需的开发者工具包。这些工具包包括LangChain Agent运行监控框架LangSmith、底层LangGraph图结构可视化与调试框架LangGraph Studio以及LangGraph服务部署工具LangGraph Cli。可以说,这些开发工具套件是显著提升LangGraph企业级应用开发效率的核心因素。同时,监控、调试和部署工具也是新一代企业级Agent开发框架不可或缺的部分,是开发者必须掌握的基本工具。
> LangSmith官方网站:https://docs.smith.langchain.com/
LangSmith 是一个用于构建、调试、可视化和评估 LLM 流程的全生命周期开发平台。它关注的焦点不在模型训练上,而是在我们构建 AI 应用(特别是多工具 Agent、LangChain/Graph)时的“可视化调试”、“效能评估”与“运维监控”。
LangGraph 图结构可视化与调试框架:LangGraph Studio
> LangGraph Studio 官网地址:https://www.langgraph.dev/studio
LangGraph Studio 是一个图形化 IDE + 运行平台,用于直观地构建、测试、分享和部署智能体流程图。
LangGraph 服务部署工具:LangGraph Cli
> LangGraph Cli 官网地址:https://www.langgraph.dev/ (需要代理环境)
LangGraph CLI 是一个开发者命令行工具,用于本地启动、调试、测试和托管 LangGraph 智能体图。
LangGraph Agent 前端可视化工具:Agent Chat UI
> Agent Chat UI 官网地址:https://langchain-ai.github.io/langgraph/agents/ui/
Agent Chat UI 是 LangGraph/LangChain 官方提供的多智能体前端对话界面,用于与后端 Agent(Graph 或 Chain)进行实时交互,支持文件上传、多工具协作、结构化输出、多轮对话、调试标记等功能。
基于此框架可以开发出各种复杂的程序、
LangGraphAgentWorkflowAgentWorkflowServerLangGraphGraphServerLangGraphLangGraph Platform目前仅支持MacAssistant APILangServerAPILangServeGraphGraphRunableinvokebatch接下来我们将详细介绍如何使用
LangGraph CLIrequirements.txt.envagent.py在
LangChain Chatbotagent.pyimport os
from dotenv import load_dotenv
from langchain_deepseek import ChatDeepSeek
from typing import Annotated
from typing_extensions import TypedDict
from langgraph.graph import StateGraph, START, END
from langgraph.graph.message import add_messages
from langchain.chat_models import init_chat_model
from langgraph.prebuilt import create_react_agent
from langchain_tavily import TavilySearch
from langchain_core.tools import tool
from pydantic import BaseModel, Field
import requests, json
# 加载环境变量
load_dotenv(override=True)
search_tool = TavilySearch(max_results=5, topic="general")
class WeatherQuery(BaseModel):
loc: str = Field(description="城市的位置名称")
@tool(args_schema = WeatherQuery)
def get_weather(loc):
"""
查询即时天气函数
:param loc: 必需参数,字符串类型,表示查询天气的具体城市名称,
请注意,中国城市需用对应的英文名称替代,例如查询北京市天气,loc参数应为'Beijing';
:return:通过OpenWeather API查询的即时天气结果,具体URL请求地址为:https://api.openweathermap.org/data/2.5/weather
返回结果为解析后的JSON格式对象,并以字符串形式呈现,包含所有关键的天气详情
"""
# 步骤 1. 构建请求
url = "https://api.openweathermap.org/data/2.5/weather"
# 步骤 2. 设置查询参数
params = {
"q": loc,
"appid": os.getenv("OPENWEATHER_API_KEY"), # 输入API密钥
"units": "metric", # 采用摄氏度而非华氏度
"lang":"zh_cn" # 输出语言设为简体中文
}
# 步骤 3. 发送GET请求
response = requests.get(url, params=params)
# 步骤 4. 解析响应
data = response.json()
return json.dumps(data)
tools = [search_tool, get_weather]
# 创建模型
model = ChatDeepSeek(model="deepseek-chat")
prompt = """
你是一位乐于助人的智能助手,专长于根据用户的问题挑选适当的工具来查询资料并作答。
当用户的问题涉及天气信息时,你应该首先调用`get_weather`工具,查询用户指定城市的实时天气,并在回复中概括查询结果。
当用户的问题涉及新闻、事件、实时动态时,你应该优先调用`search_tool`工具,搜索相关最新资讯,并在回复中简要总结。
若问题同时包含天气和新闻,请先利用`get_weather`查询天气,再使用`search_tool`查询新闻,最后将两者的结果整合后答复用户。
所有回复都应使用简体中文,表达清晰、简洁且友好。
"""
# 创建图
graph = create_react_agent(model=model,
rompt=prompt)天气信息时,请调用get_weather工具查询天气。当用户咨询新闻时,请调用search_tool工具查询新闻。”
创建
langgraph.jsonLangChain Chatbotlanggraph.jsonjsondependenciesgraphsgraphslanggraph.jsondependenciesLangGraphrequirements.txtchatbotchatbotgraph.pygraphenv安装
langgraph-cli最后,进入
langgraph_chatbot文件夹,运行
LangGraph devlanggraph dev9、
LangChain Agent后端连接Agent Chat UI
- 项目首页:https://github.com/langchain-ai/agent-chat-ui
1)复制项目
# git config --global http.proxy http://127.0.0.1:10080
# git config --global https.proxy http://127.0.0.1:10080
git clone https://github.com/langchain-ai/agent-chat-ui.git
cd agent-chat-ui
2)安装npm
node.js官方网站:https://nodejs.org
npm install -g pnpm
pnpm -v
3)安装前端项目依赖项
pnpm install
4)启动Chat Agent UI
pnpm dev
5)开始交谈
8、最终,进入至
langgraph_chatbotLangGraph devlanggraph dev9、
LangChain Agent后端连接Agent Chat UI
- 项目首页:https://github.com/langchain-ai/agent-chat-ui
1)复制项目
# git config --global http.proxy http://127.0.0.1:10080
# git config --global https.proxy http://127.0.0.1:10080
git clone https://github.com/langchain-ai/agent-chat-ui.git
cd agent-chat-ui
2)安装npm
node.js官方网站:https://nodejs.org
npm install -g pnpm
pnpm -v
3)安装前端项目依赖项
pnpm install
4)启动Chat Agent UI
pnpm dev
5)开始交谈
扫码加好友,拉您进群



收藏
