Metadata-Version: 2.4
Name: mateo-sdk
Version: 1.0.0
Summary: SDK oficial do Mateo no formato das grandes IAs — from mateoai import Mateo. IA generativa para o ensino.
License: MIT
Project-URL: Homepage, https://chat.claudinei.ia.br
Project-URL: Documentation, https://chat.claudinei.ia.br/docs.html
Keywords: mateo,ia,educacao,ensino,sdk,api,openai
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Education
Requires-Python: >=3.9
Description-Content-Type: text/markdown
Requires-Dist: httpx>=0.27

# 🧠 Mateo SDK — no formato das grandes IAs

O **Mateo** é uma IA generativa para o ensino: um colega de estudos que responde
**por ele mesmo** (memória + conhecimento), sem depender de modelos externos.
Este SDK segue o mesmo padrão dos SDKs que você já conhece:

| Grande IA | Import | Cliente | Chamada |
| --- | --- | --- | --- |
| OpenAI | `from openai import OpenAI` | `OpenAI(api_key=...)` | `client.chat.completions.create(...)` |
| Mistral | `from mistralai import Mistral` | `Mistral(api_key=...)` | `client.chat.complete(...)` |
| Gemini | `from google import genai` | `genai.Client(api_key=...)` | `client.models.generate_content(...)` |
| **Mateo** | **`from mateoai import Mateo`** | **`Mateo(api_key=...)`** | **`mateo.chat.completions.create(...)`** |

## Instalação

```bash
pip install -e ./sdk            # a partir do repositório
# ou direto do git:
# pip install "git+https://github.com/intelliski/mateo.git#subdirectory=sdk"
```

## Uso rápido

```python
from mateoai import Mateo

mateo = Mateo(api_key="sua-chave")

# 1) Formato das grandes IAs (OpenAI-compatível):
resposta = mateo.chat.completions.create(
    model="mateo-1",
    messages=[{"role": "user", "content": "o que é fração?"}],
)
print(resposta.choices[0].message.content)

# 2) Atalho — pergunta única:
print(mateo.chat("explique a fotossíntese"))

# 3) Streaming (experiência ChatGPT):
for pedaco in mateo.chat.completions.create(
    model="mateo-1",
    messages=[{"role": "user", "content": "monte um plano de estudos de inglês"}],
    stream=True,
):
    if pedaco.choices and pedaco.choices[0].delta.content:
        print(pedaco.choices[0].delta.content, end="", flush=True)

# 4) Estado do servidor:
print(mateo.health())
```

## Cliente assíncrono

```python
import asyncio
from mateoai import MateoAsync

async def main():
    mateo = MateoAsync(api_key="sua-chave")
    resposta = await mateo.chat.completions.create(
        model="mateo-1",
        messages=[{"role": "user", "content": "o que é fração?"}],
    )
    print(resposta.choices[0].message.content)

asyncio.run(main())
```

## Referência

| Método | Descrição |
| --- | --- |
| `mateo.chat.completions.create(model, messages, stream=False, ...)` | Formato das grandes IAs |
| `mateo.chat(prompt)` | Pergunta única, retorna o texto |
| `mateo.chat_stream(prompt)` | Pergunta única em streaming (gera trecho por trecho) |
| `mateo.health()` | Memórias, fragmentos de conhecimento e estado da API |
| `MateoAsync` | Mesma interface assíncrona: `await mateo.chat(...)`, `await mateo.chat.completions.create(...)`, `mateo.chat_stream(...)`, `await mateo.health()` |

**Testes:** `python -m pytest sdk/tests` (ou `python sdk/tests/test_mateoai.py`).

**Compatibilidade:** `from mateo_sdk import MateoClient` continua funcionando
(alias para `Mateo`).

**Autenticação:** `Authorization: Bearer <chave>` (feita automaticamente pelo
SDK). A chave também pode vir da variável de ambiente `MATEO_API_KEY`.

## Obtendo uma chave

Chaves de API são geradas pelo **dono do Mateo** no painel administrativo
(aba "Chaves da API", em `/#admin` do webapp). Cada chave é exibida apenas no
momento da criação — guarde-a em local seguro. Para revogar, basta excluí-la no
painel: ela para de funcionar imediatamente.

Documentação completa da API: **frontend/web/docs.html** (ou a página "API" da
landing page em produção).
