使用windows服务器搭建的deepseek创建最简单的智能对话agent

# from sre_parse import State
# 从 langchain_openai 导入 ChatOpenAI 类来使用 OpenAI 的聊天模型
from langchain_openai import ChatOpenAI
# from config import llm
from typing import Annotated
from typing_extensions import TypedDict
from langgraph.graph import StateGraph, START, END  # 导入用于创建状态机图形的库
from langgraph.graph.message import add_messages  # 用于处理消息的模块


# 定义 State 类型,用于存储对话状态的消息列表
class State(TypedDict):
    messages: Annotated[list, add_messages]  # 'messages' 需要添加消息


# 创建一个状态图构建器,StateGraph 用于管理和处理状态机图
graph_builder = StateGraph(State)

# 配置一个 ChatOpenAI 实例,用于与 OpenAI 模型进行交互
llm = ChatOpenAI(
    base_url='http://localhost:8000/generate/',  # 这是本地服务的 API 地址
    # model='deepseek-chat',
    model='DeepSeek-R1-Distill-Qwen-1___5B',  # 指定使用的模型
    # model=AutoModelForCausalLM.from_pretrained(model_path),
    api_key="xxx")  # API 密钥,这里需要使用有效的 API 密钥


# def chatbot(state:State):
#     return {"messages":[llm.invoke(state["messages"])]}
# chatbot 函数,接受 State 类型的输入并调用 LLM 生成消息
def chatbot(state: State):
    # response = llm.invoke(state["messages"])
    # print(type(response))  # 打印返回值的类型
    # print(response)  # 打印返回值内容
    return {"messages": [llm.invoke(state["messages"])]}  # 调用 LLM 生成消息并返回


# 将 chatbot 函数添加到图中作为一个节点
graph_builder.add_node("chatbot", chatbot)
# 创建图中的边,将 START 节点连接到 chatbot 节点
graph_builder.add_edge(START, "chatbot")
# 创建图中的边,将 chatbot 节点连接到 END 节点
graph_builder.add_edge("chatbot", END)
# 编译图形,生成一个可以运行的图
graph = graph_builder.compile()

# 开始循环,接收用户输入并与图形交互
while True:
    user_input = input("User: ")  # 获取用户输入
    if user_input.lower() in ["quit", "exit", "q"]:  # 用户输入 "quit", "exit", 或 "q" 时退出
        print("Goodbye!")  # 打印告别信息
        break  # 退出循环
    # 遍历图中的每个事件,并处理与用户输入相关的消息流
    for event in graph.stream({"messages": ("user", user_input)}):
        for value in event.values():
            # print("value", value)
            # 输出助手生成的消息
            print("Assistant:", value["messages"][-1].content)

# graph_builder.add_node("chatbot",chatbot)
# graph_builder.add_edge(START,end_key:"chatbot")
# graph_builder.add_edge(start_key:"chatbot", END)
# graph = graph_builder.compile()

# try:
#     mermid_code

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值