电影收藏管理API

一个基于Spring AI和Ollama的本地LLM电影收藏管理API,提供对话式接口和REST API来管理电影收藏。

  • by fredo1975
  • Java
  • 本地部署
  • 更新于
在 GitHub 查看 fredo1975/dvdtheque-mcp-server

使用说明

// ============================================================================ // 10.README.md-文档 // ============================================================================ /*

带Ollama的MCP服务器DVD库

描述

MCP(模型上下文协议)服务器,公开会话API 使用Spring AI+Ollama(本地LLM)管理电影收藏。

先决条件

  • Java 17+
  • Maven 3.8+
  • Ollama已安装并正在运行
  • Ollama型号(推荐:LLAMA3.2、Mistral或LLAMA2)

奥尔马装置

macOS/Linux

curl -fsSL https://ollama.com/install.sh | sh

视窗

从下载https://ollama.com/download

下载模型

# Modèle recommandé (performant et léger)
ollama pull llama3.2

# Alternatives
ollama pull mistral
ollama pull llama2
ollama pull codellama

检查Ollama是否工作

ollama list
curl http://localhost:11434/api/tags

配置

1.修改器应用.yml

如有必要,更改模型:

spring:
  ai:
    ollama:
      base-url: http://localhost:11434
      chat:
        options:
          model: llama3.2  # ou mistral, llama2, etc.

2.配置端点DVD库

dvdtheque:
  api:
    base-url: http://localhost:3000/api

安装和启动

# Compiler
mvn clean install

# Lancer
mvn spring-boot:run

端点

MCP与Ollama聊天

POST http://localhost:8080/mcp/chat
Content-Type: application/json

{
  "message": "Montre-moi tous les films de science-fiction",
  "conversationId": "user123"
}

删除对话

DELETE http://localhost:8080/mcp/conversation/user123

健康检查

GET http://localhost:8080/mcp/health

API REST类

GET    /api/dvds           - Tous les DVDs
GET    /api/dvds/{id}      - DVD par ID
POST   /api/dvds           - Créer un DVD
PUT    /api/dvds/{id}      - Mettre à jour un DVD
DELETE /api/dvds/{id}      - Supprimer un DVD
GET    /api/dvds/search?q= - Rechercher des DVDs

使用聊天的示例

1.列出所有DVD

curl -X POST http://localhost:8080/mcp/chat \
  -H "Content-Type: application/json" \
  -d '{"message": "Montre-moi tous mes films"}'

2.寻找电影

curl -X POST http://localhost:8080/mcp/chat \
  -H "Content-Type: application/json" \
  -d '{"message": "Cherche les films de Christopher Nolan"}'

3.添加电影

curl -X POST http://localhost:8080/mcp/chat \
  -H "Content-Type: application/json" \
  -d '{"message": "Ajoute le film Inception réalisé par Christopher Nolan en 2010, genre science-fiction, note 4.8"}'

4.薄膜改性剂

curl -X POST http://localhost:8080/mcp/chat \
  -H "Content-Type: application/json" \
  -d '{"message": "Change la note du film numéro 5 à 4.5"}'

5.删除电影

curl -X POST http://localhost:8080/mcp/chat \
  -H "Content-Type: application/json" \
  -d '{"message": "Supprime le DVD avec l'ID 3"}'

6.问题复杂

curl -X POST http://localhost:8080/mcp/chat \
  -H "Content-Type: application/json" \
  -d '{"message": "Quels sont mes films les mieux notés ?"}'

建筑

  • 弹簧靴3.2
  • 使用Ollama的Spring AI(本地LLM,无需API密钥!)
  • 用于REST API调用的WebClient
  • MCP负责接口对话
  • 集成对话记忆

Ollama的好处

✅ 免费和开源 ✅ 本地执行(数据隐私) ✅ 无请求限制 ✅ 不需要API密钥 ✅ 离线工作 ✅ 有几种型号可供选择

推荐型号

calla3.2(建议)

  • 快速高效
  • 法语很好
  • 大小:~2GB

密史脱拉风

  • 优秀的法语
  • 非常有效
  • 大小:~4GB

骆驼2

  • 版本稳定
  • 良好的性能/速度平衡
  • 大小:~3.8GB

演出

响应可能需要几秒钟,具体取决于:

  • 使用的模型
  • 你机器的力量
  • 请求的复杂性

为了提高性能:

  1. 使用较小的模型(LLAMA3.2)
  2. 增加分配给Java的RAM: java -Xmx4g
  3. 如果可用,请使用GPU

故障排除

奥拉玛没有回答

# Vérifier qu'Ollama tourne
curl http://localhost:11434/api/tags

# Redémarrer Ollama
ollama serve

模型很慢

# Essayer un modèle plus léger
ollama pull llama3.2

连接错误

检查application.yml中的基本URL是否正确:

spring.ai.ollama.base-url: http://localhost:11434

许可证

麻省理工学院 */