ai-assistant-java/README.md

86 lines
1.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# AI Assistant Java (Spring AI + pgvector)
基于 RAG检索增强生成的仓配中心 AI 助手服务,提供 OpenAI 兼容 API。
## 技术栈
- Java 17 + Spring Boot 3.2
- Spring AI + Ollama
- PostgreSQL + pgvector
- MyBatis-Plus
## 快速启动
### 1. 启动 pgvector
```bash
docker run --name pgvector -e POSTGRES_PASSWORD=postgres -e POSTGRES_DB=assistant \
-p 5432:5432 -d pgvector/pgvector:pg16
```
### 2. 启动 Ollama 模型
```bash
ollama pull qwen2.5:7b # 对话模型
ollama pull bge-m3 # Embedding 模型
```
### 3. 启动服务
```bash
./mvnw spring-boot:run
```
## API 接口
### 知识录入
```bash
POST http://localhost:8010/ingest
{
"domain_id": "general",
"content": "SKU A001 是一款高端电子产品库存预警阈值为100件"
}
```
### 智能问答 (OpenAI 兼容)
```bash
POST http://localhost:8010/v1/chat/completions
{
"model": "qwen2.5:7b",
"stream": true,
"messages": [
{"role": "user", "content": "SKU A001 的库存预警阈值是多少?"}
]
}
```
## 配置说明
`src/main/resources/application.yml`:
```yaml
assistant:
routing:
use-llm: true # 是否使用 LLM 进行域路由
fallback-domain: general # 默认域
vector:
table: assistant_vectors # 向量表名
dimension: 1024 # Embedding 维度
domains:
- id: general
name: 通用知识
keywords: []
```
## 架构
```
用户问题 → 域路由 → 相似度搜索(RAG) → LLM 生成回答
向量知识库 (pgvector)
```