news 2026/9/4 21:15:31

本体学习记录

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
本体学习记录
fromopenaiimportOpenAIimportjson client=OpenAI()defgenerate_sqp(question:str,ontology:str):prompt=f""" 你是汽车数据分析系统中的 Semantic Query Planner。 你的任务不是生成 SQL。 你必须根据 Ontology, 把用户自然语言转换成 Semantic Query Plan。 Ontology:{ontology}User Query:{question}只返回 JSON。 """response=client.responses.create(model="gpt-5",input=prompt)returnjson.loads(response.output_text)

通过上面的脚本,可以快速理解“用户查询”与“本体”, "Semantic Query Plan (SQP)"之间的关系。简单理解就是:

LLM(prompt, UserQuery, Ontology)=Semantic Query Plan

大模型生成的 SQP 还可能不靠谱,一般要用 SQP Validator 再验证确认一遍:

classOntologyValidator:def__init__(self,ontology):self.ontology=ontologydefvalidate_entity(self,entity):ifentitynotinself.ontology["entities"]:raiseValueError(f"Unknown entity:{entity}")defvalidate_field(self,entity,field):fields=(self.ontology["entities"][entity]["properties"])iffieldnotinfields:raiseValueError(f"Unknown field{entity}.{field}")defvalidate(self,sqp):self.validate_entity(sqp["entity"])forconditioninsqp["filters"]:entity,field=condition["field"].split(".")self.validate_entity(entity)self.validate_field(entity,field)returnTrue

最后,通过 Compiler,可以把 SQP 转化成图数据库查询语言:

MATCH(c:Customer)-[:OWNS]->(v:Vehicle),(v)-[:MODEL]->(m:VehicleModel),(v)-[:PURCHASED_BY]->(p:Purchase),(v)-[:HAS_FAULT]->(f:Fault),(f)-[:RUNNING_VERSION]->(sv:SoftwareVersion),(sv)-[:HAS_DEFECT]->(d:SoftwareDefect),(f)-[:HAS_REPAIR]->(r:RepairOrder),(c)-[:LIVES_IN]->(city:City),(city)-[:IN_REGION]->(region:Region)WHERE region.name="华东"AND p.purchase_date>=date()- duration("P1Y")AND v.energy_type IN["BEV","PHEV","HEV"]AND m.body_type="SUV"AND f.fault_category="Battery"AND f.fault_date>=p.purchase_date AND f.fault_date<=p.purchase_date + duration("P90D")AND d.defect_id IS NOT NULL AND NOT EXISTS{MATCH(recall:RecallCampaign)-[:TARGET_CITY]->(city),(recall)-[:TARGET_VERSION]->(sv)WHERE recall.start_date>=date()- duration("P1Y")}RETURN count(DISTINCT c)AS customer_count, avg(r.cost)AS avg_repair_cost

更多体验,如下提示词:

假设我是一个传统汽车制造商,有数据库,CRM等传统系统。我现在要转型,引入 agent 来支持类似于**“找出华东地区过去一年购买了新能源 SUV 的客户中,购买后 90 天内出现过电池相关故障、且车辆当时运行的软件版本存在已知缺陷,同时这些客户所在城市去年没有进行过该软件版本的召回活动的客户,并统计这些客户的数量和平均维修成本。”,“十佳销售商卖出去的最热门的4款车,以及他们他们的平均售价” **这样的自然语言查询。
我想为小公司写一个小的单机本体系统,希望一切相关数据库组建都用嵌入式组件。rdbms用duckdb,其余的推荐一下。要求好安装,不用docker。最后脚本启动后,前台可以通过http访问。脚本启动时自动初始化环境和数据。
使用 duckdb、kuzu、lancedb、sqlite 这类系统存储各种领域数据。

LLM部分使用 BYOM 模式,用户在网页上填入自己的token和模型,模型使用阿里云的。
请开一个工作项,在本地电脑上帮我完整完成整个项目。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/4 21:15:03

第一个 CMake 项目:最小 CMakeLists.txt 到底写了什么

欢迎拜访&#xff1a;雾里看山-CSDN博客 本篇主题&#xff1a;第一个 CMake 项目&#xff1a;最小 CMakeLists.txt 到底写了什么 发布时间&#xff1a;2026.9.3 隶属专栏&#xff1a;CMake 目录这一篇的目标最小的工程长什么样文件结构main.cppCMakeLists.txt逐行拆解第一行&am…

作者头像 李华
网站建设 2026/9/4 21:14:10

Spring Boot实战:高校双创竞赛管理系统的架构设计与实现

简介&#xff1a;本资源是一套基于Spring Boot框架开发的大学生创新创业竞赛全流程管理平台源码&#xff0c;面向高校计算机专业师生、双创教育管理者及Java全栈学习者&#xff0c;解决竞赛项目申报、路演展示、专家评审与多角色协同管理等实际业务场景需求。压缩包共403个文件…

作者头像 李华
网站建设 2026/9/4 21:12:01

Agentic RL 后训练资源怎么分?港中文、恒生大学提出 Libra

语言模型正从“回答问题”迈向“完成任务”, 于RL后训练里, 模型不但生成文本, 还会调用搜索、代码执行等外部工具, 依据环境返回继续推理。如此交互令模型具备更强行动能力, 还使训练系统面临一种相对普通RLHF较不稳定的工作负载: 同一批请求能够产生长度相差数十倍的轨迹, 少…

作者头像 李华
网站建设 2026/9/4 21:08:10

基于树莓派Pico和E22-900M22S的串口转LoRa模块设计与实战

做物联网的朋友应该都对LoRa不陌生&#xff0c;但真要自己从零搭一个可以用的串口转LoRa模块单元&#xff0c;很多人会卡在选型、接线、配置和天线这几关上。我今天把基于E22-900M22S模组和树莓派Pico的整套设计思路整理出来&#xff0c;从硬件选型到代码实现&#xff0c;再到调…

作者头像 李华
网站建设 2026/9/4 21:08:05

从变量到流程控制:VtorShell-02如何让自动化脚本告别硬编码

1. 从裸脚本到“半个编程语言”&#xff1a;VtorShell 的第二次进化如果你写过运维脚本、CI 流水线或自动化任务&#xff0c;多半经历过同一个尴尬阶段&#xff1a;脚本一开始只是几条命令的堆叠&#xff0c;用来完成一个固定动作。可当需求开始变化&#xff0c;比如“这次上线…

作者头像 李华
网站建设 2026/9/4 21:07:48

长时间断食不是饿肚子,而是代谢模式切换

「长时间断食」这四个字一出现&#xff0c;很多人脑子里已经蹦出两个极端画面&#xff1a;一边是“饿得头晕眼花也硬扛”&#xff0c;另一边是“几天不吃饭的苦行僧”。如果只看这些表面印象&#xff0c;你很容易把长时间断食理解成“普通轻断食的加强版——忍得更久、吃得更少…

作者头像 李华