Skip to main content

Uma evolução não oficial do mcp-server-qdrant - Cliente e servidor para armazenamento e busca semântica

Project description

Synapstor 📚🔍

Versão 0.1.2 | Python 3.10+ | Licença MIT

Synapstor é uma biblioteca modular para armazenamento e recuperação semântica de informações usando embeddings vetoriais e banco de dados Qdrant.

Nota: O Synapstor é uma evolução não oficial do projeto mcp-server-qdrant, expandindo suas funcionalidades para criar uma solução mais abrangente para armazenamento e recuperação semântica.

🔭 Visão Geral

Synapstor é uma solução completa para armazenamento e recuperação de informações baseada em embeddings vetoriais. Combinando a potência do Qdrant (banco de dados vetorial) com modelos modernos de embeddings, o Synapstor permite:

  • 🔍 Busca semântica em documentos, código e outros conteúdos textuais
  • 🧠 Armazenamento eficiente de informações com metadados associados
  • 🔄 Integração com LLMs através do Protocolo MCP (Model Control Protocol)
  • 🛠️ Ferramentas CLI para indexação e consulta de dados

🖥️ Requisitos

  • Python: 3.10 ou superior
  • Qdrant: Banco de dados vetorial para armazenamento e busca de embeddings
  • Modelos de Embedding: Por padrão, usa modelos da biblioteca FastEmbed

📦 Instalação

# Instalação básica via pip
pip install synapstor

# Com suporte a embeddings rápidos (recomendado)
pip install "synapstor[fastembed]"

# Para desenvolvimento (formatadores, linters)
pip install "synapstor[dev]"

# Para testes
pip install "synapstor[test]"

# Instalação completa (todos os recursos e ferramentas)
pip install "synapstor[all]"

🚀 Uso Rápido

Configuração

Existem várias formas de configurar o Synapstor:

  1. Variáveis de ambiente:

    # Exportar as variáveis no shell (Linux/macOS)
    export QDRANT_URL="http://localhost:6333"
    export QDRANT_API_KEY="sua-chave-api"
    export COLLECTION_NAME="synapstor"
    export EMBEDDING_MODEL="sentence-transformers/all-MiniLM-L6-v2"
    
    # Ou no Windows (PowerShell)
    $env:QDRANT_URL = "http://localhost:6333"
    $env:QDRANT_API_KEY = "sua-chave-api"
    $env:COLLECTION_NAME = "synapstor"
    $env:EMBEDDING_MODEL = "sentence-transformers/all-MiniLM-L6-v2"
    
  2. Parâmetros na linha de comando:

    synapstor-ctl server --qdrant-url http://localhost:6333 --qdrant-api-key sua-chave-api --collection-name synapstor --embedding-model "sentence-transformers/all-MiniLM-L6-v2"
    
  3. Programaticamente (para uso como biblioteca):

    from synapstor.settings import Settings
    
    settings = Settings(
        qdrant_url="http://localhost:6333",
        qdrant_api_key="sua-chave-api",
        collection_name="minha_colecao",
        embedding_model="sentence-transformers/all-MiniLM-L6-v2"
    )
    

Como servidor MCP

# Iniciar o servidor MCP com a interface centralizada
synapstor-ctl server

# Com parâmetros de configuração
synapstor-ctl server --qdrant-url http://localhost:6333 --qdrant-api-key sua-chave-api --collection-name minha_colecao --embedding-model "sentence-transformers/all-MiniLM-L6-v2"

Indexação de projetos

# Indexar um projeto
synapstor-ctl indexer --project meu-projeto --path /caminho/do/projeto

Como biblioteca em aplicações Python

from synapstor.qdrant import QdrantConnector, Entry
from synapstor.embeddings.factory import create_embedding_provider
from synapstor.settings import EmbeddingProviderSettings

# Inicializar componentes
settings = EmbeddingProviderSettings()
embedding_provider = create_embedding_provider(settings)

connector = QdrantConnector(
    qdrant_url="http://localhost:6333",
    collection_name="minha_colecao",
    embedding_provider=embedding_provider
)

# Armazenar informações
async def store_data():
    entry = Entry(
        content="Conteúdo a ser armazenado",
        metadata={"chave": "valor"}
    )
    await connector.store(entry)

# Buscar informações
async def search_data():
    results = await connector.search("consulta em linguagem natural")
    for result in results:
        print(result.content)

📚 Documentação Completa

Para documentação detalhada, exemplos avançados, integração com diferentes LLMs, deployment com Docker, e outras informações, visite o repositório no GitHub.


Desenvolvido com ❤️ pelo time Synapstor

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

synapstor-0.1.2.tar.gz (35.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

synapstor-0.1.2-py3-none-any.whl (32.3 kB view details)

Uploaded Python 3

File details

Details for the file synapstor-0.1.2.tar.gz.

File metadata

  • Download URL: synapstor-0.1.2.tar.gz
  • Upload date:
  • Size: 35.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for synapstor-0.1.2.tar.gz
Algorithm Hash digest
SHA256 c02f48e795a433e030054afef3f23db8af85d13e77269850fe7ffabcb1ce05ad
MD5 c4b955465900bbbe0870dc60a1335b26
BLAKE2b-256 e96982e409cb93e553e2c9fd4f14466835f179d24d831b5dedfa4d4d63622c41

See more details on using hashes here.

File details

Details for the file synapstor-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: synapstor-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 32.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for synapstor-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 801749248d46acade041ce65ca520cd65bf4f79dde93589f479c6c2de114faa2
MD5 d7a0791650ac49ba9e1871b558c2a786
BLAKE2b-256 333e2587e95bfdf4ee37a4ca11c7293d724117a258e962e7d45c49358271fc06

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page