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

网站做后怎么可以在百度搜索到中国行业数据分析网

网站做后怎么可以在百度搜索到,中国行业数据分析网,wordpress不显示日期,服务器做网站配置本文将基于langgraph框架,用LLM查询NEO4J图数据库,构建可定制、能应对复杂场景的工作流! 🌟 核心亮点 是否用户提问是否电影相关?生成Cypher查询直接回答执行查询生成最终答案 🧩 模块化实现 1️⃣ 定义状态机 from …

本文将基于langgraph框架,用LLM查询NEO4J图数据库,构建可定制、能应对复杂场景的工作流!


🌟 核心亮点

是否用户提问是否电影相关?生成Cypher查询直接回答执行查询生成最终答案


🧩 模块化实现

1️⃣ 定义状态机

from typing import TypedDict, Annotated, List
​
class InputState(TypedDict):question: str
​
class OverallState(TypedDict):question: strnext_action: strcypher_statement: strcypher_errors: List[str]database_records: List[dict]steps: Annotated[List[str], add]
​
class OutputState(TypedDict):answer: strsteps: List[str]cypher_statement: str

2️⃣ 智能护栏系统

guardrails_system = """
你是智能助手,判断问题是否与电影相关。
相关则返回"movie",否则返回"end"。
"""
​
guardrails_prompt = ChatPromptTemplate.from_messages([("system", guardrails_system),("human", "{question}")
])
​
def guardrails(state: InputState) -> OverallState:output = guardrails_chain.invoke({"question": state.get("question")})if output.decision == "end":return {"database_records": "问题与电影无关,无法回答"}return {"next_action": output.decision, "steps": ["guardrail"]}

3️⃣ Cypher生成引擎

示例增强提示

examples = [{"question": "汤姆·汉克斯演过多少电影?", "query": "MATCH (a:Person {name: 'Tom Hanks'})-[:ACTED_IN]->(m) RETURN count(m)"},{"question": "《赌场》的演员有哪些?", "query": "MATCH (m:Movie {title: 'Casino'})<-[:ACTED_IN]-(a) RETURN a.name"}
]

动态选择最相关示例

example_selector = SemanticSimilarityExampleSelector.from_examples(examples, OllamaEmbeddings(model="nomic-embed-text"),Neo4jVector, k=5
)

4️⃣ 查询执行模块

def execute_cypher(state: OverallState) -> OverallState:records = enhanced_graph.query(state.get("cypher_statement"))return {"database_records": records if records else "未找到相关信息","next_action": "end","steps": ["execute_cypher"],}

5️⃣ 最终回答生成

generate_final_prompt = ChatPromptTemplate.from_messages([("system", "你是专业电影助手"),("human", "根据数据库结果回答问题:\n结果: {results}\n问题: {question}")
])

🧠 智能工作流构建

from langgraph.graph import StateGraph
​
# 构建流程图
workflow = StateGraph(OverallState)
workflow.add_node("guardrails", guardrails)
workflow.add_node("generate_cypher", generate_cypher)
workflow.add_node("execute_cypher", execute_cypher)
workflow.add_node("generate_final_answer", generate_final_answer)
​
# 设置路由逻辑
def route_decision(state):return "generate_cypher" if state["next_action"] == "movie" else "generate_final_answer"
​
workflow.add_conditional_edges("guardrails", route_decision)
workflow.add_edge("generate_cypher", "execute_cypher")
workflow.add_edge("execute_cypher", "generate_final_answer")
workflow.add_edge("generate_final_answer", END)
​
# 编译执行
movie_expert = workflow.compile()

🎯 实战演示

案例1:无关问题

ask("西班牙天气怎么样?")

输出

我无法回答电影以外的问题,建议查询天气网站。

案例2:电影查询

ask("电影《赌场》的演员有哪些?")

输出

《赌场》的主演包括:罗伯特·德尼罗、莎朗·斯通、乔·佩西等。


💡 方案优势

特性传统方法LangGraph方案
定制性❌ 受限✅ 完全可定制
复杂度⭐ 简单⭐⭐⭐ 复杂场景
可维护性🟡 一般🟢 模块清晰
错误处理⚠️ 基础🛡️ 健壮机制

📦 资源获取

完整代码已开源:

  • GitHub仓库

  • Gitee镜像

文件命名与文章编号对应,方便查找!

http://www.dtcms.com/wzjs/105103.html

相关文章:

  • 网站视频与服务器的关系世界大学排名
  • 石家庄网络推广建站推广赚佣金
  • 网站运营的概念个人能接广告联盟吗
  • 做外贸都有哪些好网站seo难不难学
  • 网站建设负责传资料不培训机构推荐
  • 装修素材图片都从什么网站找seo技术员
  • 手机游戏网站建设昆山优化外包
  • 建设网站怎样分配给用户空间数据分析培训课程
  • 北京网站设计外包公司价格域名批量查询工具
  • 帮非法集资公司做网站违法吗天天外链
  • 焦作建设银行门户网站深圳百度推广联系方式
  • vue.js做的网站免费站推广网站2022
  • 安徽建设厅网站地址网络营销个人感悟小结
  • 怎么给网站加友情链接店面怎么做位置定位
  • 如何做彩票网站信息自己怎么做网站
  • 钦州浦北网站建设深圳关键词推广排名
  • 廉洁长沙网站临沂做网络优化的公司
  • 四川网站建设一站式服务商营销组合策略
  • 濮阳网站建设熊掌网络杭州seo网
  • 做电视的视频网站b2b免费网站推广平台
  • 广告公司取名大全最新版的烟台seo快速排名
  • 网站建设与文字的工作2023年又封城了
  • 网站空间大小怎么查看营销活动方案模板
  • 小说章节收费网站建设源码网
  • 对企业网站建设的建议短期的技能培训有哪些
  • 淘宝网站做多久黑龙江暴雪预警
  • 在自己的网站里做讲课视频怎么推广游戏代理赚钱
  • 德阳哪里有做网站的网站关键词搜索排名优化
  • 美团网站建设规划书十大it教育培训机构排名
  • 龙门城乡规划建设局网站惠州seo优化服务