Modelo
Por padrão: distilbert-base-uncased-finetuned-sst-2-english. Podes passar outro model_name compatível com a tarefa.
Uma biblioteca Python e uma API FastAPI para análise de sentimento e chat conversacional com a API oficial da Hugging Face. Instala, configura, conversa.
transformers-fastapi-kit==0.2.0 e inclui HuggingFaceChatbot, tutorial e ZIP starter.Instala o pacote com o extra api quando também quiseres executar o servidor FastAPI. O modelo padrão é descarregado e colocado em cache na primeira previsão.
$ pip install transformers-fastapi-kit[api]Para usar apenas a classe Python, o pacote base é suficiente:
$ pip install transformers-fastapi-kitTUTORIAL.md e transformers-fastapi-kit-starter.zip dentro de transformers_fastapi_kit/resources/. Consulta o README do pacote para os comandos de acesso.A classe encapsula a pipeline de análise de sentimento e carrega o modelo de forma preguiçosa, apenas quando chega a primeira previsão.
$ python
>>> from transformers_fastapi_kit import SentimentModel
>>>
>>> model = SentimentModel()
>>> model.predict("Este pacote é excelente!")
{'label': 'POSITIVE', 'score': 0.99...}Por padrão: distilbert-base-uncased-finetuned-sst-2-english. Podes passar outro model_name compatível com a tarefa.
CPU por defeito com device=-1. Para uma GPU CUDA, usa o índice correspondente, por exemplo device=0.
Cria um token de inferência em huggingface.co/settings/tokens ↗ e define HF_TOKEN. A chave fica no ambiente, nunca no código.
PS> $env:HF_TOKEN = "hf_o_teu_token"from transformers_fastapi_kit import HuggingFaceChatbot
bot = HuggingFaceChatbot()
print(bot.chat("Olá! Quem és?"))O modelo predefinido é HuggingFaceH4/zephyr-7b-beta e pode ser trocado no construtor.
O servidor expõe JSON e gera automaticamente OpenAPI. Define API_BASE_URL como o endereço público onde a tua API está realmente hospedada. Não uses um endereço local em produção.
Verifica se o serviço está disponível.
200 OK{"status":"ok"}Classifica o sentimento de uma frase.
| campo | tipo | obrigatório | descrição |
|---|---|---|---|
text | string | sim | Texto não vazio para classificar. |
200 OK{"label":"POSITIVE","score":0.9987}Envia uma mensagem para o chatbot Hugging Face.
| campo | tipo | obrigatório | descrição |
|---|---|---|---|
message | string | sim | Nova mensagem do utilizador. |
history | array | não | Mensagens anteriores com role e content. |
200 OK{"reply":"Olá! Posso ajudar...","model":"HuggingFaceH4/zephyr-7b-beta"}$ export API_BASE_URL="https://api.exemplo.pt" $ curl -X POST "$API_BASE_URL/predict" \ -H "Content-Type: application/json" \ -d '{"text":"Adoro esta API"}'
import requests
API_BASE_URL = "https://api.exemplo.pt"
response = requests.post(
f"{API_BASE_URL}/predict",
json={"text": "Adoro esta API"},
)
response.raise_for_status()
print(response.json())Este website é a documentação pública do projeto. A API FastAPI é um serviço separado: publica o processo da API num host, domínio ou plataforma de containers e depois coloca esse endereço em API_BASE_URL.
/docs pertence à aplicação FastAPI. Quando a API estiver publicada em https://api.teu-dominio.pt, a documentação Swagger estará em https://api.teu-dominio.pt/docs. Este website continua a ser a referência pública para instalação e utilização.$ uvicorn app.main:app --host 0.0.0.0 --port 8000Configura o proxy ou serviço de hosting para encaminhar o teu domínio público para essa porta. Depois, confirma /health, testa /predict e /chat e abre /docs no mesmo domínio público.