Przejdź do głównej zawartości

LLM API

Jako dodatkową usługę oferujemy możliwość korzystania z dużych modeli językowych. Są one dostępne przez API częściowo kompatybilne z OpenAI API, które widnieje pod adresem https://llm.comtegra.cloud/v1.

Umożliwiamy korzystanie z następujących zasobów:

Uwierzytelnienie odbywa się za pomocą klucza. Aby rozpocząć korzystanie z API, wystarczy utworzyć klucz za pomocą klienta CGC.

Przykłady użycia

Chat

from openai import OpenAI

client = OpenAI(base_url="https://llm.comtegra.cloud/v1",
api_key="YOUR-API-SECRET")

res = client.chat.completions.create(model="llama3-8b", max_completion_tokens=100,
messages=[{"role": "user", "content": "Hi"}])

print(res)

Embeddings

from openai import OpenAI

client = OpenAI(base_url="https://llm.comtegra.cloud/v1",
api_key="YOUR-API-SECRET")

res = client.embeddings.create(model="gte-qwen2-7b", input="Mary had a little lamb")

print(res)

Transcriptions

from openai import OpenAI

client = OpenAI(base_url="https://llm.comtegra.cloud/v1",
api_key="YOUR-API-SECRET")

with open("recording.mp3", "rb") as f:
res = client.audio.transcriptions.create(model="whisper-1", file=f)

print(res)

Klucze API

cgc api-keys create --level LLM

Wypisany zostanie klucz z etykietą API secret. Zapisz go w wygodnym i bezpiecznym miejscu. Nie ma możliwości podejrzeć go drugi raz, więc jeśli go stracisz, usuń go i stwórz nowy. Nie ujawniaj swojego klucza, gdyż może to powodować naliczenie opłat za użycie API przez osoby trzecie.

Do kluczy, przypisanych do Twojego konta można dodać komentarze. Ułatwia to ich identyfikację.

cgc api-keys create --level LLM --comment "Klucz Michała"

Wszystkie dostępne opcje można zobaczyć, wykonując polecenie cgc api-keys --help.

Billing

Zapytania do API doliczane są do rachunku Twojej organizacji. Ich koszt zależy od liczby tokenów wejściowych i wyjściowych, modelu i GPU. Cennik dostępny jest na stronie cgc.comtegra.cloud/pricing.

Zużycie tokenów i ich koszt można zobaczyć za pomocą polecenia cgc billing status.

Przykład obliczenia kosztu zapytania:

Używasz modelu Meta-Llama 3.1-70B-Instruct-Q5_K_M, uruchomionego na GPU NVIDIA A100 GPU. Załóżmy, że tokeny wejściowe kosztują 19,78 zł / 1M tok. a tokeny wyjściowe -- 167,66 zł / 1M tok. Twoje zapytanie to: Write a haiku about ChatGPT. Jest ono długości 18 tokenów. Dostajesz następującą odpowiedź: Silicon whispers. ChatGPT's gentle responses. Knowledge at my door, której długość to 16 tokenów. To zapytanie będzie kosztować 19,78 zł * 18 / 1000000 + 167,66 zł * 16 / 1000000 = 0,003039 zł.

Własna instancja LLM API

Jeśli używasz jednocześnie kilku modeli w swoim własnym namespace, możesz uruchomić własną instancję LLM API. Umożliwia ona kontrolę dostępu do modeli i gromadzenie informacji o użyciu tokenów przez każdego z użytkowników.

Działania administracyjne takie, jak zarządzanie użytkownikami i monitorowanie użycia wymagają dostępu SSH do własnego kontenera LLM API. Instrukcja konfiguracji dostępu SSH znajduje się [tutaj](/pl/Getting Started/ssh-access).

Tworzenie własnej instancji

Dostępne wkrótce.

Zarządzanie użytkownikami

Dodanie nowego użytkownika sprowadza się do wygenerowania nowego klucza API. Zaloguj się przez SSH do swojego kontenera LLM API i wykonaj następujące polecenie.

llmproxyctl user create --comment 'John Smith' --expires '2030-01-01 13:37'

# z argumentami w krótszej postaci
llmproxyctl user create -t 'John Smith' -e '2030-01-01 13:37'

Program wypisze informacje o nowym użytkowniku i wygenerowany losowo klucz.

User created
Expires: 2030-01-01 12:37:00+00:00
Comment: John Smith
Hash: dd2a60b77cb2
Plain API key: 3FpwuzyXdU-u3bm8hg9ipA3ZB7JFWSqYHPRw1EMeQsB-XuV5cJ_...

Warto zauważyć, że nie ma możliwości ponownego wypisania klucza do API w tej postaci. Jest to spowodowane faktem, że klucze są przechowywane w bazie danych w postaci skróconej (hasz).

Listę wszystkich użytkowników można uzyskać następującym poleceniem.

llmproxyctl user list

Jest również możliwość edycji komentarza lub daty wygaśnięcia dostępu użytkownika. Zwróć uwagę na pierwszą kolumnę listy użytkowników (Hash). Wybór użytkownika do edycji odbywa się na podstawie kilku pierwszych znaków tego hasza, na przykład (tutaj: da):

$ llmproxyctl user list
Hash Expires Status Comment
------------ -------------------- ------- -------
dd2a60b77cb2 2030-01-01 12:37:00 active John Smith
a26a23f52cd8 - active Sam Altman
da7534bd88a0 2022-10-26 22:00:00 expired Jack Dorosey

$ llmproxyctl user update -t "Elon Musk" -e '2030-01-01 00:00' da
User updated

$ llmproxyctl user list
Hash Expires Status Comment
------------ -------------------- ------- -------
dd2a60b77cb2 2030-01-01 12:37:00 active John Smith
a26a23f52cd8 - active Sam Altman
da7534bd88a0 2030-01-01 00:00:00 active Elon Musk

Wyłączenie danego klucza odbywa się poprzez ustawienie jego daty wygaśnięcia na specjalną wartość now.

llmproxyctl user update -e now da