Veclite 是一个 Android 平台的向量数据库和 LLM 集成示例项目,展示了如何在移动端实现向量搜索和本地 LLM 推理。
- 基于 SQLite 的向量存储和检索
- 支持多种相似度搜索算法(L2 距离等)
- 集成 Ollama API 进行文本向量化
- 实时向量搜索和文档管理
- 集成 llama.cpp 实现本地 LLM 推理
- 支持多种模型(Phi3 等)
- 流式对话响应
- 完整的聊天界面
veclite/
├── app/ # 主应用模块
│ └── src/main/java/com/devo/veclite/
│ ├── llama/ # LLM 相关功能
│ ├── vector/ # 向量数据库功能
│ ├── entity/ # 数据实体
│ └── ui/ # UI 主题
├── sqlite3/ # SQLite 核心库
├── sqlite-ext/ # SQLite 向量扩展
└── llama-bindings/ # LLama.cpp Android 绑定
- 语言: Kotlin
- UI: Jetpack Compose
- 数据库: SQLite with vector extensions
- 网络: Ktor Client
- LLM: llama.cpp
- 架构: MVVM
- Android SDK 24+
- Kotlin 1.9.0
- Jetpack Compose
- Ktor 2.3.12
- llama.cpp (通过 JNI 绑定)
- Android Studio Arctic Fox 或更高版本
- JDK 8 或更高版本
- Android SDK API 24+
- 克隆仓库
git clone https://github.com/yourusername/veclite.git
cd veclite-
使用 Android Studio 打开项目
-
同步 Gradle 依赖
-
运行项目到模拟器或真机
- 下载支持的模型文件(如 Phi3)
- 将模型文件放置到设备的
/sdcard/llama/目录 - 在应用中点击 "LLama.cpp Demo" 加载模型
- 开始对话
- 点击 "向量数据库Demo"
- 添加文本内容到数据库
- 使用搜索功能查找相似内容
- 支持切换不同的搜索算法
向量化功能需要 Ollama API。在 Ollama.kt 中配置您的 API 端点:
// app/src/main/java/com/devo/veclite/util/Ollama.kt
// 配置您的 Ollama API 地址欢迎贡献!请查看 CONTRIBUTING.md 了解详细信息。
本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。
如有问题或建议,请提交 Issue 或 Pull Request。