Pierwsze kroki
Uwierzytelnianie
Uwierzytelniaj żądania kluczem API, przestrzegaj zasad bezpieczeństwa i obsługuj błędy uwierzytelniania.
Wszystkie żądania do interfejsów API Felo API Platform wymagają uwierzytelnienia kluczem API. Ten przewodnik wyjaśnia, jak uwierzytelniać żądania i obsługiwać typowe problemy z uwierzytelnianiem.
Uwierzytelnianie kluczem API
Felo używa uwierzytelniania kluczem API dla wszystkich endpointów v2. Twój klucz API identyfikuje aplikację i zapewnia dostęp do możliwości platformy.
Jak to działa
- Uzyskujesz klucz API na stronie kluczy API Felo API Platform
- Dołączasz klucz API do nagłówka
Authorizationkażdego żądania API - Platforma weryfikuje Twój klucz API i przetwarza żądanie
Format nagłówka
Dołącz klucz API do nagłówka Authorization, używając schematu uwierzytelniania Bearer:
Authorization: Bearer YOUR_API_KEYPrzykładowe żądanie
curl -X POST https://openapi.felo.ai/v2/chat \
-H "Authorization: Bearer sk_live_abc123xyz789" \
-H "Content-Type: application/json" \
-d '{"query": "What is machine learning?"}'Uzyskiwanie klucza API
Aby uzyskać klucz API:
- Otwórz stronę kluczy API Felo API Platform
- Zaloguj się swoim kontem Felo, jeśli zostaniesz o to poproszony
- Wprowadź nazwę klucza i kliknij Create Key
- Skopiuj pełny klucz, gdy się pojawi. Jest wyświetlany tylko raz
- Przechowuj klucz bezpiecznie i używaj go jako
FELO_API_KEY
Najlepsze praktyki bezpieczeństwa
1. Bezpieczne przechowywanie kluczy API
Nie wpisuj kluczy API na stałe w kodzie źródłowym:
# ❌ Bad - API Key exposed in code
api_key = "sk_live_abc123xyz789"Tak — używaj zmiennych środowiskowych lub bezpiecznej konfiguracji:
# ✅ Good - API Key from environment
import os
api_key = os.environ.get('FELO_API_KEY')2. Korzystanie ze zmiennych środowiskowych
Przechowuj klucz API w zmiennych środowiskowych:
Linux/macOS:
export FELO_API_KEY="sk_live_abc123xyz789"Windows (Command Prompt):
set FELO_API_KEY=sk_live_abc123xyz789Windows (PowerShell):
$env:FELO_API_KEY="sk_live_abc123xyz789"3. Regularna rotacja kluczy
Okresowo generuj nowe klucze API i unieważniaj stare, aby zminimalizować ryzyko bezpieczeństwa.
4. Różne klucze dla różnych środowisk
Twórz osobne klucze API dla środowisk programistycznego, testowego i produkcyjnego.
5. Nigdy nie ujawniaj kluczy w kodzie po stronie klienta
Klucze API powinny być używane wyłącznie w kodzie po stronie serwera. Nigdy nie umieszczaj ich w:
- kodzie JavaScript frontendu
- kodzie źródłowym aplikacji mobilnej
- publicznych repozytoriach
- plikach konfiguracyjnych po stronie klienta
Błędy uwierzytelniania
Pełną kopertę błędów, nagłówki limitów szybkości i zasady ponawiania znajdziesz w Błędach, limitach i ponawianiu.
Typowe kody błędów
| HTTP | Kod | Znaczenie |
|---|---|---|
| 401 | UNAUTHORIZED | Brakujący, nieprawidłowy, wygasły lub unieważniony klucz |
| 429 | RATE_LIMITED | Zbyt wiele żądań; zobacz przewodnik Błędy, limity i ponawianie |
Odrzucone żądanie zwraca status klucza w polu message:
{
"status": 401,
"code": "UNAUTHORIZED",
"message": "API Key is required",
"request_id": "..."
}status to kod statusu HTTP. Unieważniony klucz zwraca API Key has been revoked (keyPrefix=...). Rozgałęziaj logikę na podstawie statusu HTTP i pola code, a nie dokładnego brzmienia message.
Rozwiązywanie problemów
Jeśli uwierzytelnianie nie działa:
- Sprawdź, czy nagłówek ma dokładnie postać
Authorization: Bearer YOUR_API_KEY. - Potwierdź, że klucz nie został unieważniony na stronie kluczy API.
- Potwierdź, że środowisko używa klucza, którego oczekujesz.
- Wygeneruj nowy klucz, jeśli stary został usunięty lub zrotowany. Pełny klucz jest wyświetlany tylko raz, przy tworzeniu.
Listę kontrolną opartą na objawach, obejmującą uwierzytelnianie i resztę platformy, znajdziesz w Rozwiązywaniu problemów.
Przykład: debugowanie uwierzytelniania
import requests
url = "https://openapi.felo.ai/v2/chat"
api_key = "YOUR_API_KEY"
# Correct format
headers = {
"Authorization": f"Bearer {api_key}",
"Content-Type": "application/json"
}
response = requests.post(url, headers=headers, json={"query": "test"})
if response.status_code == 401:
error = response.json()
print(f"Authentication failed: {error['code']}")
print(f"Message: {error['message']}")
print(f"Request ID: {error['request_id']}")
else:
print("Authentication successful!")Limity szybkości
Limity szybkości są egzekwowane na endpoint, a nie globalnie na klucz API. Obecnie egzekwuje je tylko `/v2/chat`; użytkownicy z aktywną płatną subskrypcją Felo są zwolnieni. Inne endpointy /v2/** nie mają egzekwowanych limitów szybkości.
Odpowiedź 429 zawiera nagłówki X-RateLimit-* i Retry-After. Zawsze odczytuj obowiązujące limity z nagłówków odpowiedzi, a nie z dokumentacji.
Pełne wymiary limitów szybkości, nagłówki i zasady ponawiania znajdziesz w Błędach, limitach i ponawianiu.
Potrzebujesz pomocy?
Jeśli doświadczasz problemów z uwierzytelnianiem:
- Uważnie przejrzyj ten przewodnik
- Sprawdź przewodnik Pierwsze kroki
- Zweryfikuj klucz API na stronie kluczy API
- Skontaktuj się z pomocą pod adresem [email protected], podając identyfikator żądania
Następne kroki
- Przewodnik pierwsze kroki — dowiedz się, jak wykonać pierwsze wywołanie API
- Dokumentacja API Chat — poznaj dokumentację API Chat