PL ▾
API tekstu bez cenzury dla potoków TTShttps://api.ttsapihub.com/v1

Adres bazowy API TTS: czym jest i co wpisać

Adres bazowy to wspólna początkowa część każdego adresu endpointu. Na tej stronie wyjaśniamy, co wpisać dla tej usługi, która jest API modelu tekstowego LLM, a nie endpointem do syntezy mowy, oraz jak ją skonfigurować w popularnych narzędziach.

Zaktualizowano

Świecące bloki ścieżki dzielące się na endpointy, ilustrujące, jak adres bazowy prowadzi do tras API

Kluczowe punkty

  • Adres bazowy tego API to https://api.ttsapihub.com/v1; ścieżki takie jak /chat/completions dodaje się po nim.
  • Mimo nazwy strony, endpoint zwraca tylko tekst. Nie ma endpointu do syntezy mowy ani audio.
  • Większość narzędzi kompatybilnych z OpenAI wymaga tylko trzech wartości: bazowego URL, klucza API i ID modelu uncensored.
  • Dwa częste błędy to podwojenie /v1 i wklejenie pełnej ścieżki /chat/completions w pole bazowego URL.

Adres bazowy i jedna ważna rzecz do wiedzy

Jeśli trafiłeś tu, szukając adresu bazowego API TTS, sprawdź jeden szczegół przed skopiowaniem: usługa za tą stroną to API modelu językowego tekstowego, a nie syntezator mowy. Adres bazowy to https://api.ttsapihub.com/v1, a endpointy to POST /v1/chat/completions i GET /v1/models. Nie ma trasy /audio/speech, listy głosów ani wyjścia audio.

To ma znaczenie, bo wiele narzędzi nazywa ustawienia ogólnie. Pole „adres bazowy” w kliencie działa tak samo, czy serwer zwraca tekst, czy dźwięk. Jeśli celem jest zamiana tekstu na audio, ten endpoint nie spełni zadania. Jeśli celem jest generowanie tekstu, który narzędzie do syntezy przeczyta później (np. scenariusze, dialogi, szkice narracji), endpoint ten dobrze się sprawdzi. Na liście kontrolnej potoku TTS znajdziesz wskazówki przy planowaniu takiego przepływu pracy, a w dokumentacji szybkiego startu znajdziesz listę wszystkich parametrów zapytania.

Reszta tej strony dotyczy dowolnego klienta kompatybilnego z OpenAI, więc jest przydatna nawet jeśli jesteś tu tylko po to, aby zrozumieć, jak działają adresy bazowe.

Czym tak naprawdę jest adres bazowy

Adres API składa się z dwóch części. Pierwsza identyfikuje usługę i wersję jej interfejsu. Druga określa akcję. Biblioteka klienta łączy je za Ciebie. W przypadku SDK OpenAI elementy te wyglądają następująco:

CzęśćWartość
Adres bazowyhttps://api.ttsapihub.com/v1
Ścieżka dodawana przez SDK dla czatu/chat/completions
Pełny adres, który jest wywoływanyhttps://api.ttsapihub.com/v1/chat/completions
Ścieżka do listy modeli/models

Ponieważ SDK dodaje ścieżkę, podajesz tylko pierwszą część. W tym cały sens zmiany dostawcy przy zmianie jednej linii: format zapytania jest wspólny, więc jedyną rzeczą, która musi się zmienić, jest miejsce wysyłania zapytań. Zmienia się też klucz, ponieważ każda usługa wydaje własny. I nazwa modelu, ponieważ każda usługa nazywa swoje modele inaczej. Dla tego API identyfikator modelu to uncensored.

Dwa drobne szczegóły oszczędzają czas. Segment wersji, /v1, należy do adresu bazowego, ponieważ oznacza generację interfejsu; przyszły niekompatybilny interfejs działałby pod inną wersją, a Twój kod nie zmieni się, dopóki nie zdecydujesz się na zmianę. Śladowy ukośnik na końcu adresu bazowego jest akceptowany przez większość SDK, ale bezpieczniej go nie dodawać, aby połączone ścieżki nie zawierały podwójnego ukośnika.

Uwierzytelnianie to standardowy nagłówek Bearer: Authorization: Bearer YOUR_KEY. SDK budują ten nagłówek z klucza, który mu podasz, więc rzadko piszesz go ręcznie, z wyjątkiem curl.

Ustawianie bazowego URL w kodzie

Python

Oficjalny pakiet openai przyjmuje argument base_url. To pełne, działające wywołanie:

from openai import OpenAI

client = OpenAI(
    base_url="https://api.ttsapihub.com/v1",
    api_key="YOUR_KEY",
)

resp = client.chat.completions.create(
    model="uncensored",
    messages=[{"role": "user", "content": "Write a two-line scene opening."}],
)
print(resp.choices[0].message.content)

Node

import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://api.ttsapihub.com/v1",
  apiKey: process.env.API_KEY,
});

const resp = await client.chat.completions.create({
  model: "uncensored",
  messages: [{ role: "user", content: "Write a two-line scene opening." }],
});
console.log(resp.choices[0].message.content);

curl

W curl piszesz cały adres samodzielnie, więc ścieżka jest wliczona:

curl https://api.ttsapihub.com/v1/chat/completions \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "uncensored", "messages": [{"role": "user", "content": "Say hello."}]}'

Zmienne środowiskowe

Nowsze wersje oficjalnych SDK OpenAI odczytują OPENAI_BASE_URL oraz OPENAI_API_KEY ze środowiska, jeśli nie przekażesz ich w kodzie. To wygodne, gdy chcesz skierować istniejące oprogramowanie na nowy endpoint bez jego edycji. Ustaw je w powłoce lub menedżerze procesów, a następnie uruchom program normalnie. Sprawdź dokumentację wersji Twojego SDK, jeśli nie odczytują one tych zmiennych.

Ustawianie w edytorach i aplikacjach

Narzędzia akceptujące niestandardowy endpoint OpenAI pytają o te same trzy wartości. Nazwy się różnią, więc szukaj opisów takich jak poniższe:

  • Cursor: w ustawieniach modelu jest opcja nadpisania bazowego adresu URL OpenAI. Wklej https://api.ttsapihub.com/v1, dodaj swój klucz i dodaj uncensored jako niestandardową nazwę modelu. Etykiety interfejsu zmieniają się między wersjami Cursor, więc traktuj te nazwy jako wskazówkę.
  • SillyTavern: wybierz Chat Completion, a następnie źródło Custom (OpenAI-compatible), i wypełnij endpoint, klucz oraz model.
  • Open WebUI i podobne interfejsy czatu: dodaj połączenie typu OpenAI z bazowym URL i kluczem.
  • Twoje własne skrypty: zadziała dowolny klient HTTP, ponieważ interfejs to zwykły JSON przez HTTPS.

Niektóre narzędzia sprawdzają połączenie, wywołując GET /v1/models. To API obsługuje tę trasę, więc sprawdzenie przechodzi pomyślnie. Niektóre narzędzia pozwalają wybrać tylko z ustalonej listy; jeśli Twoje tak działa, szukaj pola niestandardowego lub ręcznego modelu, a nie rozwijanej listy.

Pamiętaj, do czego służy narzędzie. Edytor taki jak Cursor będzie wysyłał pytania o kod do ogólnego modelu czatu, co działa. Ale funkcje zależne od specjalnych endpointów, takich jak embeddingi do wyszukiwania kodu, nie są tutaj dostępne, ponieważ embeddingi nie są oferowane.

Błędy powodujące większość błędów bazowego URL

Prawie każde nieudane pierwsze połączenie wynika z jednego z tych powodów.

  1. Podwojenie wersji. Adres bazowy kończy się już na /v1. Jeśli dodasz kolejny, adres stanie się /v1/v1/chat/completions, a serwer zwróci błąd nie znaleziono.
  2. Wklejenie pełnej ścieżki. Pole bazowego URL oczekuje https://api.ttsapihub.com/v1, a nie https://api.ttsapihub.com/v1/chat/completions. SDK dodałoby ścieżkę po raz drugi.
  3. Użycie adresu strony internetowej. Strona, którą czytasz, nie jest hostem API. Zapytania trafiają do hosta api. pokazanego powyżej.
  4. Wywołanie trasy mowy. Ścieżki takie jak /audio/speech nie istnieją tutaj i zwracają błąd.
  5. Zła lub brakująca nazwa modelu. Zawsze wysyłaj uncensored małymi literami.
  6. Problemy z kluczem API. Przypadkowa spacja lub brakujący prefiks Bearer w ręcznie napisanym nagłówku powoduje błąd uwierzytelniania.

Aby odróżnić problem z URL od problemu z kluczem, pobierz listę modeli. Poprawny URL i zły klucz dają błąd uwierzytelniania. Zły URL daje błąd nie znaleziono, błąd DNS lub stronę HTML zamiast JSON.

curl https://api.ttsapihub.com/v1/models -H "Authorization: Bearer $API_KEY"
# then a minimal chat call with the model ID "uncensored":
curl https://api.ttsapihub.com/v1/chat/completions -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"uncensored","messages":[{"role":"user","content":"ping"}],"max_tokens":5}'

Uzyskaj klucz i jego koszt

Potrzebujesz klucza, aby wszystko zadziałało. Zarejestruj się przez Google lub e-mail i hasło na stronie klucza API, a następnie jednym kliknięciem odbierz darmowy kredyt próbny w wysokości $0,50. Ważny przez 7 dni, jedno przypisanie na osobę, bez karty. Klucz próbny pozwala na 2 równoległe zapytania i 60 zapytań na minutę, podczas gdy pełny klucz to 8 równoległych i 300 na minutę.

Ceny to $0,15 za 1M tokenów wejściowych i $0,50 za 1M tokenów wyjściowych, pobierane z przedpłaconego kredytu bez subskrypcji. Zapytanie z 2 000 tokenami wejściowymi i 500 tokenami wyjściowymi kosztuje $0,0003 plus $0,00025, czyli $0,00055. Doładowania wynoszą od $20 do $500 z bonusami od $50, a płatności przyjmujemy kartą (Visa, Mastercard, Apple Pay, Google Pay) lub kryptowalutami (USDT w TRC20, USDC na Base). Na stronie z cenami znajdziesz pełną tabelę. Prompty nie są używane do trenowania, a model jest przeznaczony wyłącznie do użytku przez osoby dorosłe w celach zgodnych z prawem, bez treści seksualnych z udziałem nieletnich.

Pytania i odpowiedzi

Jaki jest podstawowy URL tego API?

To jest https://api.ttsapihub.com/v1. Dodaj ścieżki takie jak /chat/completions po nim, lub pozwól swojemu SDK dodać je.

Czy mogę użyć tego endpointa do zamiany tekstu na mowę?

Nie. Zwraca tylko tekst, bez generowania audio, obrazu ani wideo. Możesz go użyć do napisania tekstu, który kolejne narzędzie zamieni na mowę.

Czy dodaję /chat/completions do Base URL w SDK?

Nie. SDK dodaje tę ścieżkę samodzielnie. Tylko czysti klienci HTTP, tacy jak curl, potrzebują pełnego adresu.

Którą nazwę modelu powinienem wysłać?

Wyślij uncensored. Możesz potwierdzić, co lista serwera, wysyłając GET /v1/models.

Dlaczego moje narzędzie zwraca błąd not found po ustawieniu URL?

Najczęstsze przyczyny to podwojony /v1, wklejenie pełnej ścieżki lub użycie adresu strony internetowej zamiast api. host.

Twój klucz jest o jeden formularz stąd

Utwórz konto, skopiuj klucz, zmień bazowy URL. To cała konfiguracja.

Pobierz klucz API