Integrations
Implements a server with MCP endpoints using FastAPI, providing a way to expose the vector database retrieval functionality via API.
Allows searching and extracting Move files from GitHub repositories based on search queries, with support for both GitHub API and web scraping fallback methods.
Enables integration with OpenAI models for the RAG (Retrieval-Augmented Generation) pipeline, allowing enhanced responses based on retrieved information from the vector database.
Servidor MCP con FAISS para RAG
Este proyecto proporciona una implementación de prueba de concepto de un servidor de Protocolo de conversación de máquina (MCP) que permite a un agente de IA consultar una base de datos vectorial y recuperar documentos relevantes para la generación aumentada por recuperación (RAG).
Características
- Servidor FastAPI con puntos finales MCP
- Integración de la base de datos vectorial FAISS
- Fragmentación e incrustación de documentos
- Extracción y procesamiento de archivos de GitHub Move
- Integración de LLM para un flujo de trabajo completo de RAG
- Ejemplo de cliente simple
- Documentos de muestra
Instalación
Uso de pipx (recomendado)
pipx es una herramienta que le ayuda a instalar y ejecutar aplicaciones Python en entornos aislados.
- Primero, instala pipx si no lo tienes:
- Instale el paquete del servidor MCP directamente desde el directorio del proyecto:
- (Opcional) Configurar variables de entorno:
- Copiar
.env.example
a.env
- Agregue su token de GitHub para límites de velocidad más altos:
GITHUB_TOKEN=your_token_here
- Agregue su clave API de OpenAI u otra LLM para la integración de RAG:
OPENAI_API_KEY=your_key_here
- Copiar
Instalación manual
Si prefieres no usar pipx:
- Clonar el repositorio
- Instalar dependencias:
Uso con pipx
Después de instalar con pipx, tendrá acceso a los siguientes comandos:
Descargar archivos Move desde GitHub
Búsqueda e indexación de GitHub mejoradas (recomendado)
El comando mcp-search-index
proporciona capacidades mejoradas de búsqueda en el repositorio de GitHub:
- Primero busca en los repositorios y luego extrae recursivamente los archivos Move
- Admite múltiples palabras clave de búsqueda (separadas por comas)
- Filtra de forma inteligente los archivos Move que contienen referencias "use sui"
- Siempre reconstruye la base de datos vectorial después de descargarla
Indexación de archivos de movimiento
Consulta de la base de datos de vectores
Uso de RAG con la integración de LLM
Ejecución del servidor
Uso manual (sin pipx)
Iniciando el servidor
El servidor se iniciará en http://localhost:8000
Descargar archivos Move desde GitHub
Para descargar archivos Move desde GitHub y completar su base de datos de vectores:
También puedes utilizar el script de Python directamente:
Indexación de documentos
Antes de realizar consultas, debe indexar sus documentos. Puede colocar sus archivos de texto (.txt), Markdown (.md) o Move (.move) en el directorio docs
.
Para indexar los documentos, puede:
- Utilice el script de ejecución con el indicador
--index
:
- Utilice el script de índice directamente:
Consulta de documentos
Puede utilizar el script de consulta local:
Uso de RAG con la integración de LLM
Punto final de la API de MCP
El punto final de la API de MCP está disponible en /mcp/action
. Puede usarlo para realizar diferentes acciones:
retrieve_documents
: Recuperar documentos relevantes para una consultaindex_documents
: Indexa documentos de un directorio
Ejemplo:
Tubería RAG completa
El proceso completo de RAG (Recuperación-Generación Aumentada) funciona de la siguiente manera:
- Consulta de búsqueda : El usuario envía una pregunta
- Recuperación : El sistema busca en la base de datos de vectores documentos relevantes
- Formación de contexto : los documentos recuperados se formatean en un mensaje de aviso.
- Generación de LLM : el mensaje se envía a un LLM con el contexto recuperado
- Respuesta mejorada : El LLM proporciona una respuesta basada en la información recuperada
Este flujo de trabajo está completamente implementado en el módulo rag_integration.py
, que puede utilizarse a través de la línea de comandos o como una biblioteca en sus propias aplicaciones.
Extracción de archivos de movimiento de GitHub
El sistema puede extraer archivos Move de GitHub mediante consultas de búsqueda. Implementa dos métodos:
- API de GitHub (preferida): requiere un token de GitHub para límites de velocidad más altos
- Respaldo de Web Scraping : se utiliza cuando falla el método API o cuando no se proporciona ningún token
Para configurar su token de GitHub, configúrelo en el archivo .env
o como una variable de entorno:
Estructura del proyecto
Ampliación del proyecto
Para ampliar esta prueba de concepto:
- Agregar funciones de autenticación y seguridad
- Implementar un procesamiento de documentos más sofisticado
- Añadir soporte para más tipos de documentos
- Integración con otros proveedores de LLM
- Añadir monitorización y registro
- Mejorar el análisis del lenguaje Move para una extracción de datos más estructurada
Licencia
Instituto Tecnológico de Massachusetts (MIT)
This server cannot be installed
Un servidor de protocolo de conversación de máquina que permite a los agentes de IA realizar una recuperación-generación aumentada consultando una base de datos de vectores FAISS que contiene documentos de lenguaje Sui Move.