Spaces:
Running
Running
File size: 6,861 Bytes
a686b1b |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 |
# Secrets para Hugging Face Spaces
Guia completo para configurar secrets no Hugging Face Spaces para o RAG Template.
---
## Como Configurar Secrets
1. Acesse seu Space no Hugging Face
2. Va para **Settings**
3. Role ate a secao **Repository secrets**
4. Clique em **New secret** para cada secret necessario
5. Adicione nome e valor
6. Clique em **Add secret**
---
## Secrets Obrigatorios
### DATABASE_URL
**Obrigatorio**: Sim
Connection string do PostgreSQL com pgvector.
**Formato**:
```
postgresql://user:password@host:port/database
```
**Exemplos**:
```bash
# Supabase
postgresql://postgres:sua_senha@db.xxxxxxxxxxxxx.supabase.co:5432/postgres
# Neon
postgresql://user:senha@ep-xxx-xxx.us-east-1.aws.neon.tech/neondb?sslmode=require
# Railway
postgresql://postgres:senha@containers-us-west-xxx.railway.app:5432/railway
```
**Importante**:
- Certifique-se de que a senha esta URL-encoded se conter caracteres especiais
- Para Neon, inclua `?sslmode=require`
- Teste a conexao antes de adicionar ao Space
**Como obter**:
- [Supabase Setup](SUPABASE_SETUP.md)
- [Neon Setup](NEON_SETUP.md)
- [Railway Setup](RAILWAY_SETUP.md)
---
## Secrets de LLM Providers
Voce precisa de **pelo menos um** destes para usar o chat:
### HF_TOKEN (Recomendado para Spaces)
**Obrigatorio**: Nao, mas recomendado
Token da Hugging Face para usar Inference API.
**Como obter**:
1. Va para [huggingface.co/settings/tokens](https://huggingface.co/settings/tokens)
2. Crie novo token com permissao "read"
3. Copie o token
**Formato**:
```
hf_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
```
**Vantagens**:
- Gratuito (com limites)
- Sem necessidade de infraestrutura
- Varios modelos disponiveis
**Limites Free Tier**:
- ~30k tokens/hora
- Pode ter queue em horarios de pico
---
### OPENAI_API_KEY
**Obrigatorio**: Nao
Chave de API da OpenAI para usar GPT-4, GPT-3.5, etc.
**Como obter**:
1. Crie conta em [platform.openai.com](https://platform.openai.com)
2. Va para [API Keys](https://platform.openai.com/api-keys)
3. Crie nova secret key
4. Copie a chave (aparece apenas uma vez!)
**Formato**:
```
sk-proj-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
```
**Custos** (Fevereiro 2024):
- GPT-3.5-turbo: $0.50 / 1M tokens input
- GPT-4-turbo: $10 / 1M tokens input
- GPT-4o: $5 / 1M tokens input
---
### ANTHROPIC_API_KEY
**Obrigatorio**: Nao
Chave de API da Anthropic para usar Claude.
**Como obter**:
1. Crie conta em [console.anthropic.com](https://console.anthropic.com)
2. Va para API Keys
3. Crie nova key
4. Copie a chave
**Formato**:
```
sk-ant-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
```
**Custos** (Fevereiro 2024):
- Claude 3 Haiku: $0.25 / 1M tokens input
- Claude 3 Sonnet: $3 / 1M tokens input
- Claude 3 Opus: $15 / 1M tokens input
---
### OLLAMA_BASE_URL
**Obrigatorio**: Nao
URL do servidor Ollama para usar modelos locais.
**Como configurar**:
1. Instale Ollama localmente ou em servidor
2. Exponha via ngrok ou similar (para Spaces)
3. Use URL publica
**Formato**:
```
https://seu-servidor.com
```
**Nota**: Nao recomendado para Spaces publicos (requer servidor proprio).
---
## Secrets Opcionais
### EMBEDDING_MODEL_ID
**Default**: `sentence-transformers/all-MiniLM-L6-v2`
Modelo para gerar embeddings.
**Alternativas**:
```
sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2 # Multilingue
sentence-transformers/all-mpnet-base-v2 # Melhor qualidade (768d)
BAAI/bge-small-en-v1.5 # Eficiente
```
---
### TOP_K
**Default**: `4`
Numero de documentos a recuperar na busca.
**Range**: 1-20
---
### TEMPERATURE
**Default**: `0.3`
Criatividade do LLM (0 = deterministico, 1 = criativo).
**Range**: 0.0-1.0
---
### MAX_TOKENS
**Default**: `512`
Tamanho maximo da resposta do LLM.
**Range**: 100-4096
---
## Exemplo Completo
```bash
# Obrigatorio
DATABASE_URL=postgresql://postgres:senha@db.xxx.supabase.co:5432/postgres
# LLM (escolha pelo menos um)
HF_TOKEN=hf_xxxxxxxxxxxxxxxxxxxxx
OPENAI_API_KEY=sk-proj-xxxxxxxxxxxxx
ANTHROPIC_API_KEY=sk-ant-xxxxxxxxxxxxx
# Opcional
EMBEDDING_MODEL_ID=sentence-transformers/all-MiniLM-L6-v2
TOP_K=4
TEMPERATURE=0.3
MAX_TOKENS=512
```
---
## Validacao de Secrets
Apos configurar, o app validara os secrets na inicializacao:
### Validacoes:
1. **DATABASE_URL**: Testa conexao e verifica extensao pgvector
2. **HF_TOKEN**: Testa autenticacao (se fornecido)
3. **OPENAI_API_KEY**: Testa autenticacao (se fornecido)
4. **ANTHROPIC_API_KEY**: Testa autenticacao (se fornecido)
### Logs de inicializacao:
```
Conectando ao banco de dados...
DATABASE_URL: OK
Extensao pgvector: OK
Verificando LLM providers...
HuggingFace: OK
OpenAI: NAO CONFIGURADO
Anthropic: NAO CONFIGURADO
```
---
## Seguranca
### Boas Praticas:
1. **Nunca compartilhe secrets publicamente**
- Nao commite no Git
- Nao coloque em codigo
- Nao compartilhe em issues/forums
2. **Rotacao de secrets**
- Troque secrets periodicamente
- Revogue secrets antigos
- Use secrets separados para dev/prod
3. **Principio do menor privilegio**
- Use apenas permissoes necessarias
- Para HF_TOKEN, permissao "read" e suficiente
- Nao use tokens com permissoes de "write"
4. **Monitoring**
- Monitore uso de API keys
- Configure alerts de uso anormal
- Revogue imediatamente se comprometido
---
## Troubleshooting
### "Unable to connect to database"
**Causa**: DATABASE_URL incorreto ou banco inacessivel
**Solucao**:
1. Verifique formato da URL
2. Teste conexao localmente
3. Verifique se banco esta ativo (Supabase nao pausado)
---
### "HF_TOKEN invalid"
**Causa**: Token invalido ou expirado
**Solucao**:
1. Gere novo token em huggingface.co/settings/tokens
2. Certifique-se de copiar token completo
3. Token deve comecar com `hf_`
---
### "OpenAI authentication failed"
**Causa**: OPENAI_API_KEY invalida
**Solucao**:
1. Verifique se key e valida em platform.openai.com
2. Certifique-se de ter creditos na conta
3. Key deve comecar com `sk-`
---
### "Extension 'vector' not found"
**Causa**: pgvector nao habilitado no banco
**Solucao**:
```sql
-- Execute no SQL Editor do seu provider
CREATE EXTENSION vector;
```
---
## Limitacoes do Free Tier
### Hugging Face Spaces
- Secrets podem ser vistos por administradores do Space
- Spaces publicos podem ter limite de uso
- Cold start pode demorar
### LLM Providers
- **HuggingFace**: ~30k tokens/hora
- **OpenAI**: Requer creditos ($5 minimo inicial)
- **Anthropic**: Requer creditos ($5 minimo inicial)
---
## Recursos Adicionais
- [Supabase Setup](SUPABASE_SETUP.md)
- [Neon Setup](NEON_SETUP.md)
- [Railway Setup](RAILWAY_SETUP.md)
- [Database Comparison](DATABASE_COMPARISON.md)
---
## Suporte
Se encontrar problemas:
1. Verifique logs do Space
2. Teste conexoes localmente
3. Abra issue no [GitHub](https://github.com/guifav/rag_template/issues)
---
**Feito com muito cafe**
|