langgraph框架之初识

1.什么是langgraph?

LangGraph 是一个用于构建可控代理的底层编排框架。在AI中,代理也就是执行动作的智能体,也就是agent。使用这个框架可以构建一个可以自由控制的智能执行体,它可以帮我们做许多事情,如下:

  1. 自然语言处理(NLP)

    • 机器翻译:将一种语言的文本翻译成另一种语言。
    • 情感分析:分析文本中的情感倾向,如正面、负面或中性。
    • 文本生成:自动生成新闻文章、报告或故事。
  2. 对话系统

    • 聊天机器人:用于客服、导览或个人助手,提供自动化的对话服务。
    • 虚拟助手:如Siri、Alexa,帮助用户完成任务,如设置提醒、搜索信息。
  3. 内容推荐

    • 个性化推荐:根据用户的历史行为和偏好,推荐新闻、电影或产品。
    • 智能广告:根据用户上下文提供个性化的广告内容。
  4. 语言学习

    • 语言教学辅助:提供语法纠正、词汇练习和模拟对话,帮助用户学习新语言。
    • 智能 dictionaries:提供实时翻译和语言学习资源。
  5. 数据处理与分析

    • 文本提取:从非结构化文本中提取关键信息,如新闻摘要、报告生成。
    • 数据清洗:自动识别和纠正文本数据中的错误和不一致。
  6. 智能文档管理

    • 文档分类:自动对文档进行分类和标签化。
    • 内容提取:从大量文档中提取特定信息,如合同条款、技术规格。
  7. 社交媒体管理

    • 内容监控:实时监控社交媒体上的特定话题或关键词。
    • 社区管理:自动识别和处理垃圾信息或不当内容。
  8. 医疗健康

    • 电子病历分析:从电子病历中提取关键信息,辅助医生决策。
    • 健康咨询:提供基于语言的健康咨询和建议。

2.为什么要使用 LangGraph?

LangGraph 专为希望构建强大且适应性强的 AI 代理的开发者打造。开发者选择 LangGraph 的理由如下:

  • 可靠性和可控性。通过审核检查和人工审核来引导代理操作。LangGraph 会保留长期运行工作流的上下文,确保您的代理保持正轨。LangGraph 通过持久化检查点checkpointer加载已保存的状态,从而允许聊天机器人从上次中断的地方继续执行。请看以下代码呈现
  • from langgraph.checkpoint.memory import MemorySaver
    from langgraph.graph import StateGraph
    
    # 定义一个新的graph
    workflow = StateGraph(State)
    
    # 初始化内存以在graph运行之间保持状态
    memory = MemorySaver()
    
    app = workflow.compile(checkpointer=memory)
    
    # 创建用户角色
    config = {"configurable": {"thread_id": 86}}
    
    # 用户首次输入
    user_input = "Hi there! My name is Will."
    
    
    # 第一次运行thread_id为86的角色
    events = app.stream(
        {"messages": [("user", user_input)]}, config, stream_mode="values"
    )
    
    # 再次运行thread_id为86的角色,提问有没有记住用户的名字
    user_input = "Remember my name?Please spell my name"
    
    for event in events:
        event["messages"][-1].pretty_print()
    
    events = app.stream(
        {"messages": [("user", user_input)]}, config, stream_mode="values"
    )
    
    for event in events:
        event["messages"][-1].pretty_print()

    运行结果如下:

    ================================ Human Message =================================
    
    Hi there! My name is Will.
    ================================== Ai Message ==================================
    
    Hello Will! How can I assist you today?
    ================================ Human Message =================================
    
    Remember my name?Please spell my name
    ================================== Ai Message ==================================
    
    Of course, Will! Your name is W-I-L-L.
  • 低级且可扩展。使用完全描述性的低级原语构建自定义代理,摆脱限制定制的僵化抽象。设计可扩展的多代理系统,每个代理都根据您的用例定制特定的角色。一般来说在编排代理流程时,需要创建各个节点,有工具节点,有代理节点,比如某个用例可以把工具节点命名为“tools”,把代理节点命名为“agent”。
  • 一流的流式传输支持。通过逐个令牌的流式传输和中间步骤的流式传输,LangGraph 让用户能够清晰地实时了解代理的推理和操作。这个特点可以提升用户感知,让对话更友好的呈现,增强沟通效果,提升服务体验。
    def stream_graph_updates(u_input: str):
        """
        流式输出用户的提问
        :param u_input: 用户输入
        :return:
        """
        for event in app.stream({"messages": [{"role": "user", "content": u_input}]}, config):
            for value in event.values():
                print("Assistant:", value["messages"][-1].content)
    
    
    while True:
        try:
            user_input = input("User: ")
            if user_input.lower() in ["quit", "exit", "q"]:
                print("Goodbye!")
                break
            stream_graph_updates(user_input)
        except:
            # fallback if input() is not available
            user_input = "What do you know about LangGraph?"
            print("User: " + user_input)
            stream_graph_updates(user_input)
            break
    User: 你好,什么是langgraph?
    Assistant: Langgraph是一种用于表示和分析语言结构的图形化工具。它通过节点和边来表示语言中的不同元素及其关系,例如词法、句法和语义等。Langgraph可以帮助语言学家、开发者和教育者更好地理解和教授语言的复杂性。如果你有具体的问题或需要进一步的信息,请告诉我!
    User: 好,它可以应用于哪些领域?请简短说一下
    Assistant: Langgraph可以应用于多个领域,包括但不限于自然语言处理、语言教学、文本分析和机器翻译等。它帮助研究人员和开发者更好地理解语言结构,并应用于实际的语言技术开发中。
    User: 真棒
    Assistant: 谢谢您的认可!如果您还有其他问题或需要帮助的地方,随时欢迎提问。
    User: quit
    Goodbye!
    

    3.安装

  • pip install -U langgraph

    在命令行使用pip下载,也可以进入官网下载安装包后安装到指定的环境路径

4.知名客户

  • Klarna:为 8500 万活跃用户提供客户支持机器人
  • Elastic:用于威胁检测的安全 AI 助手
  • Uber:自动化单元测试生成
  • Replit:代码生成
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值