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
- Python
- curl
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)
curl \
-H 'Authorization: Bearer YOUR-API-SECRET' \
-d '{"model": "llama3-8b", "messages": [{"role": "user", "content": "Hi"}]}' \
'https://llm.comtegra.cloud/v1/chat/completions'
To polecenie jest przeznaczone do wykonania przez program curl. W Power Shellu curl to alias polecenia Invoke-WebRequest, które nie jest kompatybilne z curlem.
Embeddings
- Python
- curl
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)
curl \
-H 'Authorization: Bearer YOUR-API-SECRET' \
-d '{"model": "gte-qwen2-7b","input": "Mary had a little lamb", "pooling": "mean"}' \
'https://llm.comtegra.cloud/v1/chat/completions'
To polecenie jest przeznaczone do wykonania przez program curl. W Power Shellu curl to alias polecenia Invoke-WebRequest, które nie jest kompatybilne z curlem.
Transcriptions
- Python
- curl
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)
curl \
-H 'Authorization: Bearer YOUR-API-SECRET' \
-F file=@'recording.mp3' \
-F model='whisper-1' \
'https://llm.comtegra.cloud/v1/audio/transcriptions'
To polecenie jest przeznaczone do wykonania przez program curl. W Power Shellu curl to alias polecenia Invoke-WebRequest, które nie jest kompatybilne z curlem.
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