Zum Hauptinhalt springen

Supabase Tutorial

Tipp

Dies wird von der Community gepflegt. Bitte melden Sie einen Fehler, wenn Sie auf einen stoßen https://github.com/BerriAI/litellm

Supabase ist eine Open-Source-Firebase-Alternative. Starten Sie Ihr Projekt mit einer Postgres-Datenbank, Authentifizierung, sofortigen APIs, Edge Functions, Echtzeit-Abos, Speicher und Vektor-Embeddings.

Verwenden Sie Supabase, um Anfragen zu protokollieren und die Gesamtausgaben über alle LLM-Anbieter hinweg anzuzeigen (OpenAI, Azure, Anthropic, Cohere, Replicate, PaLM)

liteLLM bietet success_callbacks und failure_callbacks, wodurch Sie ganz einfach Daten an einen bestimmten Anbieter senden können, abhängig vom Status Ihrer Antworten.

In diesem Fall möchten wir Anfragen in beiden Szenarien an Supabase protokollieren – wenn sie erfolgreich sind und wenn sie fehlschlagen.

Supabase-Tabelle erstellen

Gehen Sie zu Ihrem Supabase-Projekt > navigieren Sie zum Supabase SQL Editor und erstellen Sie eine neue Tabelle mit dieser Konfiguration.

Hinweis: Sie können den Tabellennamen ändern. Ändern Sie nur nicht die Spaltennamen.

create table
public.request_logs (
id bigint generated by default as identity,
created_at timestamp with time zone null default now(),
model text null default ''::text,
messages json null default '{}'::json,
response json null default '{}'::json,
end_user text null default ''::text,
status text null default ''::text,
error json null default '{}'::json,
response_time real null default '0'::real,
total_cost real null,
additional_details json null default '{}'::json,
litellm_call_id text unique,
primary key (id)
) tablespace pg_default;

Callbacks verwenden

Verwenden Sie nur 2 Codezeilen, um sofort Kosten anzuzeigen und Ihre Antworten **über alle Anbieter** hinweg mit Supabase zu protokollieren.

litellm.success_callback=["supabase"]
litellm.failure_callback=["supabase"]

Vollständiger Code

from litellm import completion

## set env variables
### SUPABASE
os.environ["SUPABASE_URL"] = "your-supabase-url"
os.environ["SUPABASE_KEY"] = "your-supabase-key"

## LLM API KEY
os.environ["OPENAI_API_KEY"] = ""

# set callbacks
litellm.success_callback=["supabase"]
litellm.failure_callback=["supabase"]

# openai call
response = completion(
model="gpt-3.5-turbo",
messages=[{"role": "user", "content": "Hi 👋 - i'm openai"}],
user="ishaan22" # identify users
)

# bad call, expect this call to fail and get logged
response = completion(
model="chatgpt-test",
messages=[{"role": "user", "content": "Hi 👋 - i'm a bad call to test error logging"}]
)

Zusätzliche Steuerelemente

Endbenutzer identifizieren

Übergeben Sie user an litellm.completion, um Ihren LLM-Aufruf einem Endbenutzer zuzuordnen.

response = completion(
model="gpt-3.5-turbo",
messages=[{"role": "user", "content": "Hi 👋 - i'm openai"}],
user="ishaan22" # identify users
)

Anderer Tabellenname

Wenn Sie Ihren Tabellennamen geändert haben, erfahren Sie hier, wie Sie den neuen Namen übergeben.

litellm.modify_integration("supabase",{"table_name": "litellm_logs"})

Support & Sprechen Sie mit den Gründern