Felo API PlatformFelo API Platform

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

  1. Uzyskujesz klucz API na stronie kluczy API Felo API Platform
  2. Dołączasz klucz API do nagłówka Authorization każdego żądania API
  3. 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_KEY

Przykł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:

  1. Otwórz stronę kluczy API Felo API Platform
  2. Zaloguj się swoim kontem Felo, jeśli zostaniesz o to poproszony
  3. Wprowadź nazwę klucza i kliknij Create Key
  4. Skopiuj pełny klucz, gdy się pojawi. Jest wyświetlany tylko raz
  5. 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_abc123xyz789

Windows (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

HTTPKodZnaczenie
401UNAUTHORIZEDBrakujący, nieprawidłowy, wygasły lub unieważniony klucz
429RATE_LIMITEDZbyt 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:

  1. Sprawdź, czy nagłówek ma dokładnie postać Authorization: Bearer YOUR_API_KEY.
  2. Potwierdź, że klucz nie został unieważniony na stronie kluczy API.
  3. Potwierdź, że środowisko używa klucza, którego oczekujesz.
  4. 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:

  1. Uważnie przejrzyj ten przewodnik
  2. Sprawdź przewodnik Pierwsze kroki
  3. Zweryfikuj klucz API na stronie kluczy API
  4. Skontaktuj się z pomocą pod adresem [email protected], podając identyfikator żądania

Następne kroki