当前位置: 首页 > news >正文

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!")breakstream_graph_updates(user_input)except:# fallback if input() is not availableuser_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:代码生成

相关文章:

  • AI 编程工具—如何在 Cursor 中集成使用 MCP工具
  • Banana Pi BPI-RV2 RISC-V 路由器开发板发售, 全球首款RISC-V路由器
  • STM32单片机入门学习——第41节: [12-1] Unix时间戳
  • SpringAI入门:对话机器人
  • docker 镜像
  • MySQL中高级语法
  • 解决 Spring Boot 多数据源环境下事务管理器冲突问题(非Neo4j请求标记了 @Transactional 尝试启动Neo4j的事务管理器)
  • polkitd服务无法启动导致docker无法启动问题解决
  • 海关总署广东:广东外贸一季度进出口2.14万亿元 同期增长4.2%
  • 2.2/Q2,Charls最新文章解读
  • 【Python爬虫基础篇】--2.模块解析
  • 07_Docker 资源限制
  • Jenkins的使用及Pipeline语法讲解
  • Android Studio 常见报错
  • 从零开始学Python游戏编程31-类3
  • 深入简出:KL散度、交叉熵、熵、信息量简介、交叉熵损失
  • ubuntu学习day3
  • QT 文件和文件夹操作
  • 校平机:精密制造的“材料雕刻家“
  • python进阶: 深入了解调试利器 Pdb
  • 抵制饭圈极端应援,发倡议书还不够
  • 商务部:美国对小额包裹关税政策将严重影响美国消费者的利益
  • 优化行政检查,上海将全面应用“检查码”实现进一次门查多项事
  • 中国专家组飞赴缅甸执行地震灾害评估任务
  • 我国博士后已超40万人,2024年招收人数再创新高
  • 牛市早报|一季度GDP今日公布,海关总署召开进出口企业座谈会