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

LangChain4j 项目实战——idea快捷键搜索

LangChain4j 项目实战——idea快捷键搜索

  • 传统的快捷键搜索
  • idea 快捷键搜索应用介绍
    • 项目说明
    • 运行环境
    • 技术选型
    • 源码地址
    • 代码说明
      • 项目结构
      • 使用说明
    • 演示
    • 总结

传统的快捷键搜索

idea集成开发环境是很多java开发者使用的开发工具之一,它有很多快捷键。传统的方法检索快捷键的步骤:

  1. 打开设置 ctrl + alt + s
    在这里插入图片描述
  2. 移动到 Keymap导航栏 ↓
  3. 切换到搜索框 Tab
    在这里插入图片描述

idea 快捷键搜索应用介绍

项目说明

  1. 支持中文检索快捷键
  2. 支持相似文本搜索快捷键

运行环境

JDK 21

技术选型

  1. LangChain4j,大模型框架,有免费的api接口可以试用,适合学习试用。Java开发者的福音,类似于Python的LangChain框架
  2. DuckDB, 内嵌项目的数据库,不需要网络连接,支持向量检索
  3. 大模型API接口,翻译idea的英文快捷键
  4. 向量化模型API接口,向量化文本,存储到向量库,相似文本搜索

源码地址

  1. github:https://github.com/shootercheng/idea-shortcut-key.git
  2. gitee: https://gitee.com/3281328128/idea-shortcut-key

代码说明

项目结构

在这里插入图片描述

  1. database 目录, duckdb 文件存储目录
  2. keymap 目录,idea 快捷键 xml 配置文件
  3. src目录,有2个主要的类: (1)InitStore 负责解析xml,翻译idea英文到中文,保存解析数据到DuckDb数据库,初始化运行一次就够了(2)KeyMapSearch负责检索使用

使用说明

  1. 新建配置文件 model.properties,路径 /config/shortcut-key/model.properties
private static final String MODEL_CONFIG_PATH = "/config/shortcut-key/model.properties";

当然也可以修改对应的路径,代码地址 org.scd.InitStore#MODEL_CONFIG_PATH

  1. 删除keymap目录的xml配置文件,将本地的idea快捷键配置复制到对应的目录,查找快捷键xml配置文件请查看 https://blog.csdn.net/modelmd/article/details/148201731
  2. InitStore 主函数只需要初始化运行,如果快捷键有变更才需要重新初始化
  3. KeyMapSearch 如果想调整查找的精确度,可以调整score的大小
 var queryEmbedding = InitStore.embeddingModel.embed(userQuery).content();var request = EmbeddingSearchRequest.builder().queryEmbedding(queryEmbedding).minScore(0.8D).maxResults(20).build();

minScore 最小的分数,符合要求的数据项 >= 0.8 分,完全相似是1分,分数越大越相似

演示

运行 KeyMapSearch
在这里插入图片描述

总结

刚开始使用本地向量化模型 AllMiniLmL6V2QuantizedEmbeddingModel 发现对中文的相似搜索不准确,英文是可以的,后来切换成 text-embedding-v3 中文相似搜索比较准确

相关文章:

  • Scratch游戏 | 枪战游戏
  • 自动化安全脚本学习
  • 动态规划(6)下降路径最小值
  • C++ gtest单元测试
  • golang逃逸分析
  • AI 集成
  • C/C++ 结构体:. 与 -> 的区别与用法及其STM32中的使用
  • 基于MATLAB实现传统谱减法以及两种改进的谱减法(增益函数谱减法、多带谱减法)的语音增强
  • mysql:MVCC机制
  • leetcode 39. Combination Sum和40. Combination Sum II
  • 人工智能100问☞第32问:什么是迁移学习?
  • 机器学习课程设计报告 —— 基于口红数据集的情感分析
  • 【免杀】C2免杀技术(九)DLL注入前置篇
  • 事务操作语句
  • 美团2025年校招笔试真题手撕教程(三)
  • [Linux]磁盘分区及swap交换空间
  • React整合【ECharts】教程002:折线图的构建和基本设置
  • 疫情社区管理登记系统
  • 基于TypeScript的全栈待办事项应用Demo
  • binlog解析工具——binlog2sql
  • 牛商网做网站的思路/免费做网站自助建站
  • 哪个网站可以做翻译赚钱/网上营销的方式
  • 静态展示网站模板下载/昆明网站seo优化
  • 徐州网站建设多少钱/湖北网站推广
  • 怎么做网站导航外链/2022年大事热点新闻
  • 郑州做网站大量网站被关/windows清理优化大师