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

项目上线了

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、项目地址
  • 二、简介
  • 总结

前言

之前据说很厉害的项目上线了,不过AI说像ETL,无所谓了,给大家看看


一、项目地址

添加链接描述

二、简介

基于springboot 3.5.7 springAI 1.1.0实现。

接口: ChatController用于用户输入和日志拉取两个流程复用返回精准匹配 自动异步落盘

searchController用于文本图片双模态多路召回top10,并对工具返回格式采取prompt注入和直接调用两种选项获取工具原值
工具:Fastmcp search_mcp.py利用网络接口补全相关信息

pika test_clip.py 分布式系统通过rabbitmq互相通信,多步补全图片向量
python代码: insert.py获取简介

insert2.py获取演员和导演 k_means.py聚出5个差异最大的数据 Farthest Point Sampling(k‑center greedy) move.py 数据清洗并向量化 test.py 入库

文档: links_updated.csv 根据tmdbID获取简介

links_updated2.csv获取演员和导演信息
第一步:数据清洗

https://files.grouplens.org/datasets/movielens/ml-32m.zip

因为下的是比较新的数据源(2023-10)所以多了一个links.csv,里面有imdbId和tmdbId,方便我们补全电影简介。简单看一下,里面有八万条电影,限制速度40次/10S,那就要六个小时。

第二步:写python+下载ollama+下载bge-m3

python要写FastAPI,原因是ollama图片向量模型本地没有,云端太贵,所以python提供接口直接调用

第三步:下载PostgreSQL + pgvector

第四步:使用python接口处理向量和文本,然后存储为向量

第五步:多路复用,文本0.7+图片0.3 如果没有图片就是文本*1.0

第六步:拉入近期搜索值,处理当天的nginx日志,提取有价值的指标

为了和java对接 引入rabbitmq

第七步:实时调整向量

应该要归一化 避免文本长度带来的影响

第八步:MCP搜索工具和agent智能体的引入

提示词写好 可以让他在用户提问后多次调用工具 不过感觉不算是真的agent

第九步 测验

建立对照实验,1.重新导入instruct向量,证明他有用2.下载bg25证明bge-m3多语言情况下与文本检索的bg25有同等性能 bg25 缩减版语句 HR@10 = 47 / 50 = 0.94 bge-m3 未加instruct的中文原文简介 HR@10 = 27 / 50 = 0.54 bge-m3 加instruct的中文原文简介 HR@10 = 24 / 50 = 0.48

补充:

要建索引

CREATE INDEX ON documents

USING hnsw (embedding_text vector_cosine_ops);

建表语句 CREATE TABLE movie ( movie_id INTEGER, title CHARACTER VARYING(200), introduction TEXT, genres CHARACTER VARYING(100), embedding_text VECTOR(1024), embedding_image VECTOR(512) );

title要有唯一标识 ALTER TABLE movie ADD CONSTRAINT uk_movie_title UNIQUE (title);

遇到的问题: @Autoweired后在别的地方new了它,交给spring管理后就不能new了 改为参数注入 没有规划好类 导致多个类循环依赖 改为lazy懒加载 AdvisorCall获取不到返回值 通过提示词要求返回原值 并再过一遍LLM回复用户偏好语言 或者通过手动调mcp工具获取原值 但是不能模糊匹配用户偏好

展望: 通过设置偏移值实现让LLM翻页搜索的功能 维护用户偏好标题链和用户向量 实现用户的持久化 (但是会增加写操作,所以要引入redis缓冲)


总结

总的来说就是工具调用吧,多轮对话也很有意思。

http://www.jsqmd.com/news/1078341/

相关文章:

  • 【题解】WebGoC绘图题目精选整合集
  • 【Java踩坑笔记】【基础语法篇】05_重写equals不重写hashCode会怎样?
  • 小白stm32入门教程学习记录:3-2 LED闪烁流水灯
  • 有哪些专业的匹克球拍公司可以推荐?
  • 机房运维台账怎么做才算到位
  • 终极指南:企业级远程控制平台billd-desk私有化部署全流程
  • AI培训行业变化:必火AI与传统机构对比
  • MCP服务器:AI与外部工具安全交互的协议中枢
  • 【每天认识一个国家 | 韩国】
  • 你的业务真的需要现代化改造吗?无服务器、托管服务、自建EC2,别选错了
  • 2026深度实测|两大主流AI编程工具vibe coding迭代能力全方位对比
  • 如何在老旧硬件上安装Windows 11:FlyOOBE完整技术指南与实战方案
  • 假面真贷:一场信贷伪冒申请的“全链路“围剿
  • VMware NSX入门终极私藏包:NSX Manager API调用大全+Postman集合+拓扑自动生成Python工具(限前500名领取)
  • 2026年车规芯片产业交流平台实力盘点:TOP5车规级半导体展会精选分析
  • 2026实测:高性价比AI编程工具替代方案全梳理
  • 2026亚洲EMBA客观测评:科学选型与优质项目解析
  • Windows资源管理器3D模型预览终极指南:Space Thumbnails让你的文件管理可视化
  • 办公室装修怎么省钱又高级?老板装修前一定要看
  • 2026年将至,靠谱的智能体技术究竟哪家强?速来一探究竟!
  • Bright Data Scraper Studio:AI公开文本语料采集全流程
  • 2026门店老板想用手机随时看数据?京东收银这套手机管店能力值得了解
  • 嵌入式测试学习第 43 天:变频冰箱主板嵌入式FCT整机测试
  • 2026实测:AI团队编程软件全推荐
  • YOLOv11涨点改进| ECCV 2026 |独家创新、主干改进篇| 全新PKINetV2主干让YOLOv11更加强大!增强遥感目标检测中的几何建模能力、尺度适应能力,助力目标检测、旋转目标检测涨点
  • 智能科学与技术和人工智能是不是一个专业?高考志愿填报千万别搞混!
  • OSGearth开发
  • Visual Studio 中的 Agent Skill:让 Copilot 适配团队工作模式
  • 2026好用命理软件怎么选?八字排盘App要看场景路径和功能组合
  • 正特征域上D-模的Bernstein–Sato理论:构造、根与Frobenius模