- 博客(27)
- 收藏
- 关注
原创 电商问数学习笔记-15-API 接口基础与 FastAPI 入门
本章介绍FastAPI中SSE流式响应技术选型,阐述为何选用SSE实现问数接口的实时进度推送。通过StreamingResponse与异步生成器结合,实现前端“一次请求、持续接收执行状态”的体验。重点讲解SSE协议格式(data:... \n\n)、FastAPI工程三件套——lifespan(应用级资源管理)、middleware(请求级横切逻辑)、Depends(依赖注入)的作用与使用场景。以最小可运行接口为例,完成/api/query路由搭建与测试验证,为下一章接入真实智能体工作流奠定基础。
2026-11-03 15:26:57
300
原创 亚信科技Agent实习面经
该岗位为京东成都武侯区AI Agent开发实习生,面向2027-2028届硕士生,实习时间可长期。职责涵盖Agent开发、多智能体架构设计、RAG系统优化及产品全周期管理。要求具备Python、LLM应用、LangChain等框架经验,熟悉Prompt工程与向量数据库。面试聚焦自我介绍、Agent理解、MCP、Dify/Coze平台认知、技术对比(如LangChain vs LangGraph)、项目实践与问题解决能力。候选人需具备较强技术探索与数据驱动优化意识,未来将主要参与基于Dify低代码平台的Age
2026-11-02 21:23:46
317
原创 电商问数学习笔记-14-SQL 生成与执行闭环
本章构建问数智能体核心闭环:生成→校验→校正→执行。通过generate_sql在结构化上下文约束下生成纯文本SQL,利用EXPLAIN提前校验语法错误,失败时由correct_sql基于错误信息最小修复,最终run_sql执行并返回字典列表结果。关键创新在于以数据库解析作为校验手段,实现错误回流与纠错闭环,确保从自然语言到查询结果的端到端可靠性。
2026-11-02 21:10:17
388
原创 电商问数学习笔记-13-SQL 生成前的信息过滤与补全
本章聚焦SQL生成前的上下文精筛与补全,通过filter_table和filter_metric节点,基于用户问题从候选表结构和指标中筛选必要项,减少噪声;采用YAML格式序列化结构化数据,提升模型可读性。add_extra_context补充当前日期、星期、季度及数据库方言版本等运行环境信息,确保相对时间表达与SQL语法兼容。三者协同构建精准、简洁的上下文,为后续高效生成正确SQL奠定基础。
2026-10-30 15:34:18
263
原创 langchain官方文档学习-Agent 智能体
本章概述LangChain智能体核心架构:智能体=模型+运行框架(harness)。模型在循环中调用工具直至任务完成,运行框架通过提示词、工具与中间件塑造行为。核心组件包括模型、工具、系统提示、结构化输出、状态管理及上下文配置。支持流式输出、持久化对话(via checkpointer)与运行时上下文传递。通过中间件扩展实现执行环境、记忆、规划委派、容错、护栏与人工引导等高级功能。推荐使用create_agent构建灵活智能体,或基于DeepAgents快速启用预集成能力。
2026-10-29 16:03:48
226
原创 langchain官方文档学习-结构化输出Structured output
本章介绍智能体的结构化输出机制,通过create_agent(response_format=...)实现模型按指定格式返回数据,结果存于structured_response。支持五种Schema定义方式(Pydantic、dataclass、TypedDict、JSONSchema字典、联合类型),并提供两种策略:ProviderStrategy(原生支持,最可靠)与ToolStrategy(通用回退)。自动选择规则基于模型能力,但JSONSchema需显式包裹在策略中。ToolStrategy支持自定
2026-10-29 15:57:46
541
原创 电商问数学习笔记-12-召回信息合并与上下文构建
本章核心是将三路召回的字段、指标、取值信息合并整理为结构化上下文。通过去重建字典、补全指标依赖字段与真实取值示例、按表分组、补齐主外键,最终生成table_infos和metric_infos两大核心结构。该过程确保大模型能清晰理解“表-字段”层级关系与指标计算逻辑,为后续SQL生成提供稳定、完整的业务上下文。
2026-10-28 10:10:02
706
原创 langchain官方文档学习-短期记忆short term-memory
短期记忆即对话历史(messages),通过Checkpointer按thread_id持久化,实现跨会话状态管理。核心机制:以AgentState的messages键为载体,结合InMemorySaver或PostgresSaver进行存储;通过自定义state_schema扩展字段,工具中用ToolRuntime读写状态,返回Command更新;中间件@before_model/@after_model/@dynamic_prompt实现剪裁、删除、总结等治理策略,确保上下文合规高效。治理按“剪裁→删除
2026-10-28 10:07:59
265
原创 langchain官方文档学习-Messages
消息是LangChain中模型上下文的基本单位,由角色(system/user/assistant/tool)、内容(文本/多模态)和元数据构成。支持三种输入形式:字符串、消息对象列表与字典格式。核心类型包括SystemMessage(系统指令)、HumanMessage(用户输入)、AIMessage(模型输出,含工具调用与元数据)及ToolMessage(工具结果)。消息内容通过content与标准化的content_blocks双层表示,实现跨供应商统一;支持多模态输入(图像、音频等),并可通过dum
2026-10-27 11:31:12
395
原创 电商问数学习笔记-11 - 关键词抽取与多路召回
本章聚焦问数智能体的关键词抽取与三路召回流程,阐明为何需先提取关键词并扩展,再分别进行字段、指标、字段取值的召回。通过LangGraph状态(State)与上下文(Context)管理,实现动态状态流转与工具注入。三路召回分别采用向量检索(Qdrant)与全文检索(Elasticsearch),解决“查哪列”“怎么算”“条件值如何写”问题。核心链路为:关键词→LLM扩展→Embedding→检索→去重→写回状态。掌握各节点职责及数据流,为后续合并上下文与生成SQL奠定基础。
2026-10-26 17:02:46
150
原创 langchain官方文档学习-模型Models
本文介绍了LangChain中聊天模型的初始化与使用方法,强调手动编写代码以提升实战能力。通过init_chat_model可统一接入多提供商模型,支持独立调用、流式传输、批处理及工具调用。重点讲解了参数配置、结构化输出(如Pydantic)、多模态支持、速率限制与提示词缓存等高级功能,并指出对话历史格式规范的重要性。建议关闭自动补全,亲自动手实践以深化理解。
2026-10-25 17:05:02
540
原创 电商问数学习笔记-10-问数智能体总览与工作流骨架
本章聚焦电商问数智能体的工作流构建,基于LangGraph搭建多节点流程骨架。通过定义State与RuntimeContext,实现状态共享与依赖注入;使用StateGraph注册节点、连接普通边与条件边,完成从关键词抽取到SQL执行的完整链路编排。重点强调并行召回、条件分支与流式输出机制,利用stream_writer和astream实现执行进度实时观测。虽暂不实现节点内部逻辑,但已验证工作流可正常运行,为后续逐层填充业务细节奠定基础。
2026-10-24 19:32:40
473
原创 电商问数学习笔记-9-字段与指标检索能力构建
本章系统讲解问数系统中三路召回机制的构建:字段向量索引(基于Qdrant语义检索)、字段值全文索引(基于ES分词匹配)、指标向量索引(基于Qdrant)。通过将字段名、描述、别名拆分为多个语义点,实现自然语言对字段的精准召回;利用ES建立字段真实值索引,解决“华北地区”等取值匹配问题;同时将指标定义与字段关联关系写入元数据库,并构建其语义索引,支持GMV、AOV等业务口径的识别。整条链路由Service编排,各Repository分工协作,最终形成可检索、可验证的元数据知识库,为NL2SQL生成提供完整上下
2026-10-23 14:33:36
730
原创 电商问数学习笔记-7-元数据知识库总览与构建入口
本章聚焦元数据知识库的离线构建,核心是通过配置驱动实现“先搭架子、再填内容”。脚本入口build_meta_knowledge.py仅负责解析命令行参数、初始化依赖并调度流程,不掺杂业务逻辑。真正的构建逻辑在meta_knowledge_service.py中,根据meta_config.yaml配置文件,分步完成表/字段信息写入元数据库、向量索引(Qdrant)与全文索引(Elasticsearch)的建立。项目采用分层架构:配置文件定义同步范围,业务实体统一内部表达,ORM模型映射数据库结构,mappe
2026-10-22 10:22:13
365
原创 电商问数学习笔记-6-MySQL、Embedding 接入与日志管理
本章聚焦嵌入(Embedding)、MySQL与日志三大基础能力的集成。通过TEI服务实现文本向量化,由Embedding客户端管理器统一调用;MySQL同时承担元数据库与数仓模拟库角色,基于SQLAlchemy构建异步连接池与Session工厂,支持高效数据存取;日志系统采用Loguru,结合request_id与contextvars实现请求链路追踪,支持控制台与文件双输出,并通过配置化管理实现可维护的日志策略。三者协同支撑后续检索、生成与排障闭环。
2026-10-21 15:14:12
323
原创 电商问数学习笔记-5:Qdrant 与 ES 快速入门与接入
本章详解Qdrant与Elasticsearch在“电商问数”中的分工:Qdrant基于向量语义相似度召回相关字段/指标,擅长理解“意思相近”;Elasticsearch通过全文索引匹配真实字段取值,解决“词法不一致”问题。两者协同工作,分别从语义层和文本层为大模型生成精准SQL提供上下文支持。项目通过封装QdrantClientManager与ESClientManager统一管理异步客户端,确保高效、可复用的检索服务。核心概念包括collection/point、index/document、mappi
2026-10-19 17:15:47
214
原创 电商问数学习笔记-4:项目结构与基础服务配置管理
本章系统讲解了shopkeeper-agent项目的工程结构与配置管理,重点介绍基于YAML和OmegaConf的配置加载机制。通过定义dataclass结构与YAML文件的映射,实现配置项的类型安全与统一访问。项目采用清晰分层架构,将代码、配置、提示词等分离存放,并通过Path(__file__).parents[2]等路径策略确保配置文件定位稳定。核心流程为:加载YAML内容 → 生成结构化schema → 合并并转换为可直接访问的Python对象。最终形成全局可复用的app_config,支撑MySQ
2026-10-19 15:34:15
152
原创 电商问数学习笔记-3:开发环境与基础服务准备
本章聚焦「电商问数」项目环境搭建,核心内容包括:使用uv管理Python虚拟环境与依赖,掌握uv add、uv remove、uv sync等常用命令;通过Docker Desktop统一部署MySQL、Qdrant、Elasticsearch、Kibana及Embedding推理服务;重点讲解docker-compose.yaml配置文件的工程意义,明确各服务职责与数据持久化机制。强调先完成环境与基础服务启动,再进入业务开发,避免因环境问题导致调试困难。
2026-10-17 16:58:59
429
原创 Agent项目-电商问数学习笔记-前言
本项目基于GitHub开源仓库didilili/shopkeeper-agent,打造一个融合MySQL、LangGraph、Qdrant、Elasticsearch与FastAPI的电商智能问数系统。通过构建元数据知识库,实现字段、指标与取值的混合检索,利用LangGraph编排多阶段智能体工作流,完成自然语言到SQL的生成、校验与执行,并通过SSE流式返回结果。项目覆盖从数据准备、检索增强、工作流编排到前后端联调的完整链路,是学习LangGraph与AI Agent实战的优质进阶案例。
2026-10-17 16:12:35
732
原创 苍穹外卖学习笔记-DAY10
本节课主要讲解SpringTask定时任务与WebSocket实时通信。通过cron表达式实现订单状态定时处理(如支付超时自动取消、派送中订单每日凌晨完成),结合@Scheduled注解完成自动化逻辑。同时,利用WebSocket实现服务器与客户端的双向通信,支持来单提醒与客户催单功能,通过JSON格式消息推送,触发前端语音播报与弹窗提示,提升系统实时性与用户体验。
2026-10-16 21:01:26
271
原创 苍穹外卖学习笔记-DAY08
本节课主要讲解苍穹外卖项目中的订单支付功能,重点实现微信支付接入。通过导入地址簿模块代码,完成用户收货地址的增删改查;随后实现用户下单流程,包括订单与订单明细数据的生成及购物车清空。核心在于订单支付环节:配置微信支付参数、使用cpolar内网穿透获取公网域名,调用微信JSAPI接口生成预支付交易单,并处理支付成功回调,更新订单状态。课程强调企业级开发中DTO、VO、Entity等对象分离的必要性,虽看似繁琐,但有助于解耦与维护。
2026-10-14 15:32:30
280
原创 苍穹外卖学习笔记-DAY07
本节课主要讲解Spring Cache在购物车功能中的应用,实现菜品与套餐的缓存管理及购物车的增删改查。通过Redis缓存菜品和套餐数据,减少数据库访问压力,提升系统性能。采用Spring Cache注解(@Cacheable、@CachePut、@CacheEvict)实现缓存读写与清理,确保数据一致性。购物车功能基于用户ID实现个性化存储,支持添加、查看、修改数量及清空操作,数据持久化至数据库。课程强调缓存设计规范,指出全量清理缓存可能导致“缓存雪崩”,提倡精细化粒度控制,结合延时双删等策略保障高并发下
2026-10-13 21:06:51
536
原创 苍穹外卖学习笔记-DAY06
本文介绍了Java中使用HttpClient发送HTTP请求的原理与实践,涵盖GET/POST请求的实现及Maven依赖配置。同时简要讲解微信小程序开发流程,重点实现微信登录功能:通过wx.login()获取code,后端用HttpClient调用微信接口换取openid,结合JWT生成token完成用户身份认证。随后导入商品浏览功能代码,实现分类、菜品、套餐等接口的查询,并通过拦截器校验登录态,最终完成小程序前端与后端的完整交互。
2026-10-10 15:28:35
212
原创 苍穹外卖学习笔记-DAY05
本文主要介绍了Redis的基础知识及其在Java项目中的应用,重点实现“店铺营业状态设置”功能。通过SpringDataRedis操作Redis的字符串类型,将营业状态(1:营业中,0:打烊中)存储于Redis中,实现管理端与用户端对营业状态的读写与查询。结合Swagger接口文档分组展示,完成前后端联调测试,确保客户在小程序端根据店铺状态可正常下单或无法下单,提升了系统的实时性与可用性。
2026-10-09 20:42:03
129
原创 苍穹外卖学习笔记-DAY03
本文基于AOP实现公共字段自动填充,解决多表增删改查中重复赋值问题。通过自定义@AutoFill注解与切面类,结合反射机制,在插入/更新时自动设置创建时间、修改时间、创建人及修改人等字段。随后实现菜品管理核心功能:新增菜品(含文件上传至OSS)、分页查询、批量删除(校验起售状态与套餐关联)及修改菜品(同步更新口味数据),均采用事务保证数据一致性,提升开发效率与代码可维护性。
2026-10-08 17:08:11
386
原创 苍穹外卖学习笔记-DAY02
本课程新增员工管理与菜品分类管理功能,实现员工分页查询、启用/禁用、编辑及导入分类模块。通过DTO封装数据,结合MyBatis分页插件PageHelper完成分页查询;利用ThreadLocal传递当前登录员工ID,确保创建人信息准确;通过全局异常处理器处理用户名重复等场景。分类管理支持增删改查、启用禁用及按类型查询,基于动态SQL实现灵活更新,整体功能完整,代码规范,具备良好的可维护性与扩展性。
2026-10-08 14:36:48
240
原创 苍穹外卖学习笔记-DAY01
本文基于苍穹外卖项目,系统梳理了前后端技术选型与开发环境搭建流程。前端采用Vue.js+ElementUI+ECharts构建管理后台,移动端使用微信小程序;后端基于SpringBoot生态,集成MyBatis、Redis、JWT等技术实现高效开发。通过Nginx实现反向代理与负载均衡,提升系统性能与安全性。结合Knife4j生成可视化接口文档,支持Swagger注解优化API说明,并完成登录功能联调与密码加密改造。实际部署中解决数据库连接、路径映射及权限验证等问题,最终实现前后端分离的完整开发闭环。
2026-10-06 16:53:53
1012
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅