SDK Python para acessar bases de conhecimento jurídico VectorGov
Project description
VectorGov SDK
SDK Python para acessar bases de conhecimento jurídico VectorGov.
Acesse informações de leis, decretos e instruções normativas brasileiras com 3 linhas de código.
Instalação
pip install vectorgov
Início Rápido
from vectorgov import VectorGov
# Conectar à API
vg = VectorGov(api_key="vg_sua_chave_aqui")
# Buscar informações
results = vg.search("Quando o ETP pode ser dispensado?")
# Ver resultados
for hit in results:
print(f"{hit.source}: {hit.text[:200]}...")
Integração com LLMs
OpenAI
from vectorgov import VectorGov
from openai import OpenAI
vg = VectorGov(api_key="vg_xxx")
openai = OpenAI()
# Buscar contexto
query = "Quais os critérios de julgamento na licitação?"
results = vg.search(query)
# Gerar resposta
response = openai.chat.completions.create(
model="gpt-4o",
messages=results.to_messages(query)
)
print(response.choices[0].message.content)
Google Gemini
from vectorgov import VectorGov
import google.generativeai as genai
vg = VectorGov(api_key="vg_xxx")
genai.configure(api_key="sua_google_key")
query = "O que é ETP?"
results = vg.search(query)
# Monta o prompt
messages = results.to_messages(query)
system_prompt = messages[0]["content"]
user_prompt = messages[1]["content"]
# Cria o modelo com system instruction
model = genai.GenerativeModel(
model_name="gemini-2.0-flash",
system_instruction=system_prompt
)
response = model.generate_content(user_prompt)
print(response.text)
Anthropic Claude
from vectorgov import VectorGov
from anthropic import Anthropic
vg = VectorGov(api_key="vg_xxx")
client = Anthropic()
query = "Quais documentos compõem o ETP?"
results = vg.search(query)
response = client.messages.create(
model="claude-sonnet-4-20250514",
max_tokens=1024,
messages=results.to_messages(query)
)
print(response.content[0].text)
Modos de Busca
| Modo | Descrição | Latência | Uso Recomendado |
|---|---|---|---|
fast |
Busca rápida, sem reranking | ~2s | Chatbots, alta escala |
balanced |
Busca com reranking | ~5s | Uso geral (default) |
precise |
Busca com HyDE + reranking | ~15s | Análises críticas |
# Busca rápida (chatbots)
results = vg.search("query", mode="fast")
# Busca balanceada (default)
results = vg.search("query", mode="balanced")
# Busca precisa (análises)
results = vg.search("query", mode="precise")
Filtros
# Filtrar por tipo de documento
results = vg.search("licitação", filters={"tipo": "lei"})
# Filtrar por ano
results = vg.search("pregão", filters={"ano": 2021})
# Múltiplos filtros
results = vg.search("contratação direta", filters={
"tipo": "in",
"ano": 2022,
"orgao": "seges"
})
Formatação de Resultados
results = vg.search("O que é ETP?")
# String simples para contexto
context = results.to_context()
print(context)
# [1] Lei 14.133/2021, Art. 3
# O Estudo Técnico Preliminar - ETP é documento...
#
# [2] IN 58/2022, Art. 6
# O ETP deve conter...
# Mensagens para chat (OpenAI, Anthropic)
messages = results.to_messages("O que é ETP?")
# [{"role": "system", "content": "..."}, {"role": "user", "content": "..."}]
# Prompt único (Gemini)
prompt = results.to_prompt("O que é ETP?")
System Prompts Customizados
# Usar prompt pré-definido
results = vg.search("query")
messages = results.to_messages(
system_prompt=vg.get_system_prompt("detailed")
)
# Prompts disponíveis
print(vg.available_prompts)
# ['default', 'concise', 'detailed', 'chatbot']
# Prompt totalmente customizado
custom_prompt = """Você é um advogado especialista em licitações.
Responda de forma técnica e cite artigos específicos."""
messages = results.to_messages(system_prompt=custom_prompt)
Feedback
Ajude a melhorar o sistema enviando feedback:
results = vg.search("O que é ETP?")
# Após verificar que o resultado foi útil
vg.feedback(results.query_id, like=True)
# Se o resultado não foi útil
vg.feedback(results.query_id, like=False)
Propriedades do Resultado
results = vg.search("query")
# Informações gerais
results.query # Query original
results.total # Quantidade de resultados
results.latency_ms # Tempo de resposta (ms)
results.cached # Se veio do cache
results.query_id # ID para feedback
results.mode # Modo utilizado
# Iterar resultados
for hit in results:
hit.text # Texto do chunk
hit.score # Relevância (0-1)
hit.source # Fonte formatada
hit.metadata # Metadados completos
Tratamento de Erros
from vectorgov import (
VectorGov,
VectorGovError,
AuthError,
RateLimitError,
ValidationError,
)
try:
results = vg.search("query")
except AuthError:
print("API key inválida ou expirada")
except RateLimitError as e:
print(f"Rate limit. Tente em {e.retry_after}s")
except ValidationError as e:
print(f"Erro no campo {e.field}: {e.message}")
except VectorGovError as e:
print(f"Erro: {e.message}")
Variáveis de Ambiente
# API key pode ser definida via ambiente
export VECTORGOV_API_KEY=vg_sua_chave_aqui
# Usa automaticamente a variável de ambiente
vg = VectorGov()
Configuração Avançada
vg = VectorGov(
api_key="vg_xxx",
base_url="https://vectorgov.io/api/v1", # URL customizada
timeout=60, # Timeout em segundos
default_top_k=10, # Resultados padrão
default_mode="precise", # Modo padrão
)
Obter sua API Key
- Acesse vectorgov.io/playground
- Crie uma conta ou faça login
- Gere sua API key na seção "Configurações"
Documentação
Suporte
Licença
MIT License - veja LICENSE para detalhes.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file vectorgov-0.1.1.tar.gz.
File metadata
- Download URL: vectorgov-0.1.1.tar.gz
- Upload date:
- Size: 18.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
52895858ee53b22f9349d99a4ec86a0fd2fddff04a17238a5ce051c09850071c
|
|
| MD5 |
3a39b892b8554d76a8f6f0495ea785fb
|
|
| BLAKE2b-256 |
8278a751dceff734f685969cfb5458e2158f35c7671f7e12dd90cae90ff800ef
|
File details
Details for the file vectorgov-0.1.1-py3-none-any.whl.
File metadata
- Download URL: vectorgov-0.1.1-py3-none-any.whl
- Upload date:
- Size: 16.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b7c1c6acbfdfd30c51eaf5e84aa59913521d79ff800d92357714dfe95fd2b1d5
|
|
| MD5 |
129de07940889437191714b822e8f4bc
|
|
| BLAKE2b-256 |
5b316be7baffa8231f788c17ff64815629f1665ab20406b296fde24d354e1831
|