Repository navigation
Mapeamento de features
Esta parte lida com os endpoints disponíveis e como eles se comportam. Note que as respostas “felizes” são exemplos e que, na prática, podem ocorrer erros. Questione sempre se o comportamento esperado condiz com a realidade.
-
Descrição: Envia um texto para diferentes LLMs com fallback automático.
-
Endpoint:
POST /v1/invoke -
Requisição:
{ "input": "bom dia" } -
Resposta (sucesso):
{ "output": "bom dia Daniel", "model-used": "gemini" } -
Resposta (falha total):
{ "error": "Não foi possível concluir a chamada" }
-
Descrição: Envia um texto para o classificador NVIDIA e direciona para o tier necessário.
-
Endpoint:
POST /v1/invoke -
Requisição:
{ "input": "bom dia" } -
Resposta:
{ "output": "bom dia Daniel", "model-used": "gemini" }
-
Descrição: Permite definir o tipo de fallback, entre:
- fast: Modelos rápidos e pequenos.
- mid: Modelos medianos.
- reasoning: Foco na qualidade da resposta.
- latency: Foco na baixa latência.
-
Endpoint:
POST /v1/invoke -
Requisição:
{ "input": "bom dia", "tier-model": "fast | mid | reasoning | latency" } -
Resposta:
{ "output": "bom dia Daniel", "model-used": "gemini" }
-
Descrição: Define a ordem de fallback das LLMs. Importante: escolha entre definir um fallback específico ou seu tipo, NUNCA os dois.
-
Endpoint:
POST /v1/invoke -
Requisição (exemplo 1 – fallback específico):
{ "input": "bom dia", "fallback": ["chatgpt", "deepseek"] } -
Requisição (exemplo 2 – por tipo):
{ "input": "bom dia", "tier-model": "fast | mid | reasoning | latency" } -
Resposta:
{ "output": "bom dia Daniel", "model-used": "deepseek" }
-
Descrição: Envia texto juntamente com arquivos (PDF ou imagem) para processamento. (Validação do tipo de arquivo é necessária.)
-
Endpoint:
POST /v1/invoke-image? -
Requisição:
{ "input": "Analise esta imagem para mim e gere uma imagem resultante", "file_path": ["file=@caminho/do/arquivo.pdf", "file=@caminho/do/arquivo2.png"] } -
Resposta:
{ "output": "bom dia Daniel", "output-image": "image_path", "model-used": "mistral" }
-
Descrição: Permite selecionar as LLMs por fallback ao processar texto e arquivos.
-
Endpoint:
POST /v1/invoke-image? -
Requisição:
{ "input": "Desenhe uma maça caindo do céu", "file_path": ["file=@caminho/do/arquivo.pdf", "file=@caminho/do/arquivo2.png"], "fallback": ["chatgpt", "deepseek"] } -
Resposta:
{ "output": "", "output-image": "file=@caminho/do/arquivo.png", "model-used": "mistral" }
-
Descrição: Além de enviar o arquivo, permite selecionar as LLMs por tipo de fallback. Atenção: ao usar
tier-model, não se pode usarfallback. -
Endpoint:
POST /v1/invoke-image? -
Requisição:
{ "input": "Desenhe uma maça caindo do céu", "file_path": ["file=@caminho/do/arquivo.pdf", "file=@caminho/do/arquivo2.png"], "tier-model": "fast | mid | reasoning | latency" } -
Resposta:
{ "output": "", "output-image": "file=@caminho/do/arquivo.png", "model-used": "mistral" }
- Descrição: Seleciona automaticamente entre GPU e CPU, conforme a máquina.
-
Descrição: Garante que a API trate requisições assíncronas do
classifier.py.
Endpoints e Descrições:
| Endpoint | Método | Descrição |
|---|---|---|
/v1/rag/store |
POST |
Armazena embeddings de documentos (retorna ou requer um token). |
/v1/rag/query/{token} |
GET |
Recupera documentos vinculados ao token. |
/v1/rag/invoke/{token} |
POST |
Consulta e gera resposta com LLM usando os documentos recuperados. |
/v1/rag/delete/{token} |
DELETE |
Exclui um documento específico vinculado a um token. |
- Descrição: Cria um banco de dados para armazenar dados de monitoramento.
- Descrição: Monitora o valor gasto por requisição ou por período, considerando o modelo de cobrança de cada provedor.
- Descrição: Garante persistência do histórico de conversas do usuário.
- Porque não foi implementado: A utilização de cookies não garante a persistência de dados em diferentes dispositivos.
- Descrição: Ter persistência de conversas em banco de dados, vinculado a um token.
- Descrição: Utilização de resumo de conversa após x interações.
- Link: Chat Model Caching
Garantir que cada usuário acesse apenas seu próprio context_token, impedindo o acesso a tokens de outros usuários.