Jak zintegrować LlamaIndex z CometAPI

CometAPI
AnnaSep 10, 2025
Jak zintegrować LlamaIndex z CometAPI

CometAPI zapewnia pojedynczą, kompatybilną z OpenAI bramę do wielu modeli (rodzina GPT, Anthropic/Claude, Google Gemini i inne). LlamaIndex („framework danych” do tworzenia aplikacji LLM z funkcją wyszukiwania) udostępnia teraz natywną integrację CometAPI LLM — co oznacza, że ​​można **wywołać dowolny model przez CometAPI z LlamaIndex.

LlamaIndex (oprogramowanie do tworzenia ram danych dla asystentów wiedzy) oficjalnie obsługuje teraz Interfejs API Comet jako back-end LLM. Ten przewodnik pokazuje, dlaczego warto je połączyć, jak skonfigurować środowisko, krok po kroku przeprowadzić integrację (z kodem), konkretny przypadek użycia RAG oraz wskazówki dotyczące poprawy niezawodności, kosztów i obserwowalności. Przykłady znajdują się poniżej. Dokumentacja LlamaIndex i Przykłady integracji CometAPI.

Czym jest LlamaIndex i jakie są jego najważniejsze cechy?

LlamaIndex (dawniej GPT-Index) to platforma do abstrakcji i wyszukiwania danych, która łączy duże modele językowe (LLM) z własnymi danymi poprzez pobieranie dokumentów, tworzenie indeksów oraz organizowanie przepływów pracy związanych z pobieraniem i podpowiadaniem dla aplikacji w stylu RAG. Kluczowe funkcje obejmują łączniki do pobierania dokumentów (PDF, internet, bazy danych), indeksy wektorowe/słowo kluczowe/graf, elastyczne silniki zapytań oraz warstwę abstrakcji do wymiany dostawców LLM. LlamaIndex został zaprojektowany, aby umożliwić „wprowadzanie własnych danych” do dowolnego LLM i tworzy infrastrukturę do dzielenia dokumentów na fragmenty, osadzania, pobierania i podpowiadania.

Jakie są główne cechy?

  • Złącza danych: pobieranie danych z plików, baz danych i wielu źródeł SaaS.
  • Indeksowanie prymitywów: indeksy pamięci wektorów, indeksy drzew/grafów i potoki pobierania.
  • Silniki zapytań:elastyczna orkiestracja zapytań (rerankingi, synteza odpowiedzi, monity wieloetapowe).
  • Adaptery LLM:wtykowe back-endy LLM — OpenAI, Anthropic, Vertex, a teraz CometAPI i inne.
  • Obserwowalność i wywołania zwrotne:narzędzia do śledzenia i monitorowania rozmów LLM.

Czym jest CometAPI i dlaczego warto go używać z LlamaIndex?

Czym jest CometAPI?

CometAPI to brama API, która udostępnia setki zewnętrznych modeli AI (LLM, generatory obrazów/wideo i osadzenia) za pośrednictwem jednego, zgodnego z OpenAI interfejsu REST. Zamiast żonglować oddzielnym zestawem SDK i kluczem dla każdego dostawcy modelu, wywołujesz podstawowy adres URL CometAPI i wybierasz nazwę modelu w treści żądania — na przykład gpt, claude, geminilub różne specjalistyczne silniki do osadzania/obrazowania. To podejście „jednego API dla ponad 500 modeli” przyspiesza eksperymenty i zmniejsza obciążenie operacyjne.

Dlaczego warto połączyć CometAPI z LlamaIndex?

LlamaIndex to framework danych, który przekształca dokumenty w indeksy (wektorowe i inne) i wykorzystuje LLM do syntezy końcowych odpowiedzi. Ponieważ CometAPI obsługuje API w stylu OpenAI, LlamaIndex może:

  • Użyj jego wbudowany CometAPI Integracja LLM (zalecane) lub
  • Użyj adapterów OpenAI/„zgodnych z OpenAI” LLM i osadzania, wskazując api_base do CometAPI.

LlamaIndex już zapewnia dedykowane CometAPI Opakowanie LLM i przykłady — dzięki czemu integracja jest celowo prosta.

Jakie korzyści daje integracja?

  1. RAG + elastyczny wybór modelu — LlamaIndex zajmuje się pobieraniem danych i szybką syntezą; CometAPI pozwala wybrać wywołane LLM bez konieczności przebudowy potoku.
  2. Optymalizacja kosztów/opóźnień — wypróbuj tańsze i szybsze modele w przypadku rutynowych zapytań oraz modele wyższej jakości w przypadku skomplikowanego rozumowania.
  3. Przenośność dostawcy — zamień dostawców modeli, zmieniając tylko nazwy modeli lub małą konfigurację klienta.
  4. Szybkie eksperymentowanie — łatwe tworzenie modeli A/B przy jednoczesnym zachowaniu stałego indeksowania i procesu wyszukiwania.

Jakie są wymagania wstępne i konfiguracja środowiska?

Konta i klucze

Zarejestruj się w CometAPI i uzyskaj klucz API z konsoli CometAPI: https://api.cometapi.com/console/token. (Ta wartość będzie potrzebna do uwierzytelniania żądań.)

Python i pakiety

  • Zalecany jest Python 3.9+.
  • Jupyter Notebook lub środowisko Python (do interaktywnych testów zalecane jest użycie Google Colab).
  • Pakiety do zainstalowania: llama-index (rdzeń) i llama-index-llms-cometapi (adapter/integracja CometAPI)
  • Opcjonalnie: biblioteki przechowywania wektorów, których planujesz użyć (np. faiss-cpu, pinecone-client, itd.). LlamaIndex ma oficjalne przewodniki po sklepach z grafikami wektorowymi.

Zmienne środowiskowe

Powszechna praktyka: ustaw klucz CometAPI jako zmienną środowiskową (np. COMETAPI_KEY) lub przekazać klucz bezpośrednio do konstruktora LlamaIndex CometAPI. Dokumentacja LlamaIndex pokazuje oba podejścia — aby uniknąć niejednoznaczności i testów, przekazywanie api_key= jawnie do konstruktora jest najbezpieczniejsze.

Jak krok po kroku zintegrować LlamaIndex i CometAPI?

Poniższa lista zawiera szczegółowe instrukcje dotyczące następujących działań: utworzenie konta, instalacja pakietów, ustawienie kluczy, konfiguracja LlamaIndex w celu użycia CometAPI.

1) Jak założyć konto CometAPI i uzyskać klucz API?

  1. Odwiedź witrynę CometAPI i załóż konto. (Strona główna i proces rejestracji przekierują Cię do konsoli API).
  2. W konsoli CometAPI (odwołanie do dokumentacji) https://api.cometapi.com/console/token), utwórz lub skopiuj swój token API. Będzie Ci to potrzebne do COMETAPI_API_KEY (Patrz niżej).

2) Jak zainstalować LlamaIndex i integrację CometAPI?

Uruchom poniższe polecenia pip (zalecane w środowisku wirtualnym):

# core LlamaIndex

pip install llama-index

# CometAPI LLM integration for LlamaIndex

pip install llama-index-llms-cometapi

# optional: vectorstore (FAISS example)

pip install faiss-cpu

(If you're in a Jupyter/Colab environment you can prefix with `%pip`.)

Uwagi:

  • LlamaIndex korzysta z pakietów integracyjnych z przestrzenią nazw, aby uniknąć konieczności umieszczania wszystkiego w rdzeniu. Integracja CometAPI LLM jest dostępna jako llama-index-llms-cometapi.

3) Jak ustawić klucz CometAPI (zmienną środowiskową)?

Klasa LLM CometAPI biblioteki LlamaIndex odczytuje klucz API z parametru konstruktora lub zmiennej środowiskowej. Kod integracji oczekuje nazwy zmiennej środowiskowej. COMETAPI_API_KEY (Możesz również przekazać klucz bezpośrednio do konstruktora klasy). Obsługuje również COMETAPI_API_BASE jeśli musisz zastąpić podstawowy adres URL API.

Zalecane (dosłowne) — przekaż klucz API do konstruktoraMożesz również ustawić zmienną środowiskową COMETAPI_KEY Jeśli wolisz.

import os
# Option A: set env var (optional)

os.environ = "sk-xxxx-your-key"

# Option B: pass the key explicitly (recommended for clarity)

api_key = os.getenv("COMETAPI_KEY", "sk-xxxx-your-key")

Ustaw lokalnie (Unix/macOS):

export COMETAPI_API_KEY="sk-<your-cometapi-key>"
# optional override:

export COMETAPI_API_BASE="https://www.cometapi.com/console/"

W systemie Windows (PowerShell):

$env:COMETAPI_API_KEY = "sk-<your-cometapi-key>"

4) Skonfiguruj LlamaIndex do korzystania z CometAPI

Poniżej znajduje się minimalny przykład kompleksowy: pobieranie dokumentów, budowanie indeksu wektorowego i wysyłanie zapytania. Ten przykład wykorzystuje nowoczesne API LlamaIndex (Przykład A: ServiceContext + indeks wektorowy); dostosuj nazwy, jeśli używasz starszej/nowszej wersji LlamaIndex.

minimal RAG example using CometAPI as the LLM backend
from llama_index import SimpleDirectoryReader, VectorStoreIndex, ServiceContext
from llama_index.llms.cometapi import CometAPI
from llama_index.core.llms import ChatMessage

# 1) API key and LLM client

api_key = "sk-xxxx-your-key"  # or read from env

llm = CometAPI(
    api_key=api_key,
    model="gpt-4o-mini",      # pick a CometAPI-supported model

    max_tokens=512,
    context_window=4096,
)

# 2) Optional: wrap in ServiceContext (customize prompt settings, embedding model etc)

service_context = ServiceContext.from_defaults(llm=llm)

# 3) Load documents (assumes a ./data directory with files)

documents = SimpleDirectoryReader("data").load_data()

# 4) Build a vector index (FAISS, default vector store)

index = VectorStoreIndex.from_documents(documents, service_context=service_context)

# 5) Query the index

query_engine = index.as_query_engine()
resp = query_engine.query("Summarize the main points in the documents.")
print(resp)
  • Nazwy modeli i dostępne możliwości zależą od interfejsu CometAPI — zapoznaj się z dokumentacją CometAPI, aby wybrać model najlepszy dla swojego przypadku użycia. Adapter LlamaIndex Comet obsługuje tryby czatu i uzupełniania oraz strumieniowanie.
  • Jeśli chcesz otrzymywać odpowiedzi strumieniowe, możesz zadzwonić llm.stream_chat() lub użyj stream_complete wariant pokazany w dokumentacji.

Uwaga: w zależności od wersji LlamaIndex, dokładny interfejs API dla as_query_engine akceptując llm Argument może się różnić. Jeśli Twoja wersja nie akceptuje lServiceContext Tutaj, zobacz LLM poniżej. CometAPI LLM jest zaimplementowany jako CometAPI in llama_index.llms.cometapi.

Przykład B — Minimalne, bezpośrednie wykorzystanie CometAPI LLM (zalecane dla przejrzystości)

import os
from llama_index.llms.cometapi import CometAPI
from llama_index import VectorStoreIndex, SimpleDirectoryReader

# ensure env var set, or pass api_key explicitly

os.environ = "sk-<your-key>"  # or set externally

api_key = os.getenv("COMETAPI_API_KEY")
llm = CometAPI(
    api_key=api_key,          # or pass None to use env var

    model="gpt-4o-mini",      # change model string as required

    max_tokens=256,
    context_window=4096,
)

# build a simple index (local documents)

documents = SimpleDirectoryReader("data/").load_data()
index = VectorStoreIndex.from_documents(documents)

# get a query engine that uses the default llm (you can often pass llm to the query method)

query_engine = index.as_query_engine(llm=llm)   # some LlamaIndex versions accept llm here

response = query_engine.query("Summarize the key points of the corpus.")
print(response)

Jak mogę korzystać z funkcji CometAPI z LlamaIndex? (zaawansowane przykłady)

1) Zadzwoń chat z listą ChatMessage

Przykład:

# Initialize LLM

llm = CometLLM(
    api_key=api_key,
    max_tokens=256,
    context_window=4096,
    model="gpt-5-chat-latest",
)

# Chat call using ChatMessage

from llama_index.core.llms import ChatMessage

messages = [
    ChatMessage(role="system", content="You are a helpful assistant"),
    ChatMessage(role="user", content="Say 'Hi' only!"),
]
resp = llm.chat(messages)
print(resp)

# Use complete method

resp = llm.complete("Who is Kaiming He")
print(resp)

Oczekiwany wynik:

  • Odpowiedź na czacie: np. assistant: Hi
  • Odpowiedź uzupełniająca: np. opis tekstowy dotyczący Kaiming He, zawierający informacje o ResNet.

Odtwarza to semantykę czatu (role systemowe/użytkownik/asystent) i często zapewnia bardziej kontrolowane wyniki. Wysyła prostą wiadomość i pobiera modelową odpowiedź. Możesz dostosować wiadomości do bardziej złożonych interakcji.

Czy CometAPI obsługuje strumieniowanie?

Tak — CometAPI obsługuje strumieniowe przesyłanie czatów/uzupełnień, a LlamaIndex udostępnia metody przesyłania strumieniowego w swoich opakowaniach LLM (stream_chat, stream_complete, streamable W przypadku aplikacji czasu rzeczywistego należy użyć metod stream_chat lub stream_complete do strumieniowego przesyłania odpowiedzi. Przykład:

# Streaming chat

message = ChatMessage(role="user", content="Tell me what ResNet is")
resp = llm.stream_chat()
for r in resp:
    print(r.delta, end="")

# Streaming completion

resp = llm.stream_complete("Tell me about Large Language Models")
for r in resp:
    print(r.delta, end="")

Oczekiwany wynik: Przesyłanie strumieniowe drukowanej treści odpowiedzi, np. wyjaśnienia dotyczące ResNet lub przeglądu dużych modeli językowych, wyświetlane w częściach.

Wyjaśnienie: Stream_chat i stream_complete generują odpowiedzi fragment po fragmencie, co umożliwia ich generowanie w czasie rzeczywistym. W przypadku wystąpienia błędu zostanie on wyświetlony w konsoli.

Odzwierciedla to przykłady LlamaIndex dla innych LLM zgodnych z OpenAI i współpracuje z punktami końcowymi strumieniowania Comet. Obsługuj presję zwrotną i błędy sieciowe dzięki solidnej logice ponawiania/przekroczenia limitu czasu w środowisku produkcyjnym.

Szybka zmiana modeli

# try Claude from CometAPI

claude_llm = CometAPI(api_key=api_key, model="claude-3-7-sonnet-latest", max_tokens=300)
svc = ServiceContext.from_defaults(llm=claude_llm)
index = VectorStoreIndex.from_documents(documents, service_context=svc)
print(index.as_query_engine().query("Explain in one paragraph."))

Ponieważ CometAPI normalizuje punkty końcowe, zmiana modeli polega jedynie na zmianie konstruktora — nie jest wymagane żadne natychmiastowe przepisywanie potoku.

Porady i techniki udoskonalania

Jak zarządzać kosztami i tokenami

  • Użyj pobierania: wyślij tylko pobrany kontekst, a nie cały korpus.
  • Eksperymentuj z mniejszymi modelami do pobierania/podsumowywania oraz większymi do syntezy ostatecznych odpowiedzi. CometAPI sprawia, że ​​zamiana modeli jest banalnie prosta.

Niezawodność i ograniczanie szybkości

  • Wdrożenie ponów próbę + wycofanie w przypadku błędów przejściowych.
  • Przestrzegaj limitów przepustowości CometAPI i wdróż budżet tokenów na żądanie. Śledź max_tokens w konstruktorze.

Obserwowalność i debugowanie

  • Użyj menedżera wywołań zwrotnych LlamaIndex do przechwytywania monitów, odpowiedzi i użycia tokenów. Podłącz te logi do swojego kanału monitorowania. Dokumentacja LlamaIndex omawia wzorce obserwowalności i integracje.

Buforowanie i opóźnienie

  • Buforuj wyniki LLM w przypadku powtarzających się zapytań lub deterministycznych monitów (np. standardowych podsumowań).
  • Rozważ użycie mniejszego i szybszego modelu przy pierwszym podejściu i przejdź na droższy model tylko wtedy, gdy będzie to konieczne.

Ochrona

  • Przechowuj klucz CometAPI w magazynie sekretów (Vault/chmura) — nie zapisuj go na stałe w kodzie.
  • Jeśli dane są poufne, upewnij się, że wybrany plan lub model CometAPI spełnia wymogi zgodności.

Lista kontrolna rozwiązywania problemów

  • Nieprawidłowa zmienna środowiskowa:Jeśli LlamaIndex nie może znaleźć klucza, przekaż api_key= CometAPI() konstruktor musi być jawny. (Dokumentacja pokazuje zarówno zmienną środowiskową, jak i opcje konstruktora.)
  • Model nieobsługiwany:Potwierdź nazwę modelu na liście modeli CometAPI — nie każda nazwa występuje na każdym koncie.
  • Błędy indeksowania: Upewnij się, że dokumenty są poprawnie parsowane (kodowanie, typy plików). Użyj SimpleDirectoryReader do szybkiego pobrania próbki.
  • Wersja dryfu: LlamaIndex jest aktywnie rozwijany (migracja ServiceContext → Ustawienia). Jeśli przykład nie działa, sprawdź dokumentację i przewodnik migracji dla zainstalowanej wersji.

Jak zacząć

CometAPI to ujednolicona platforma API, która agreguje ponad 500 modeli AI od wiodących dostawców — takich jak seria GPT firmy OpenAI, Gemini firmy Google, Claude firmy Anthropic, Midjourney, Suno i innych — w jednym, przyjaznym dla programistów interfejsie. Oferując spójne uwierzytelnianie, formatowanie żądań i obsługę odpowiedzi, CometAPI radykalnie upraszcza integrację możliwości AI z aplikacjami. Niezależnie od tego, czy tworzysz chatboty, generatory obrazów, kompozytorów muzycznych czy oparte na danych potoki analityczne, CometAPI pozwala Ci szybciej iterować, kontrolować koszty i pozostać niezależnym od dostawcy — wszystko to przy jednoczesnym korzystaniu z najnowszych przełomów w ekosystemie AI.

Na początek zapoznaj się z możliwościami modelu w Plac zabaw i zapoznaj się z LamaIndeks aby uzyskać szczegółowe instrukcje. Przed uzyskaniem dostępu upewnij się, że zalogowałeś się do CometAPI i uzyskałeś klucz API. Interfejs API Comet zaoferuj cenę znacznie niższą niż oficjalna, aby ułatwić Ci integrację.

Gotowy do drogi?→ Zarejestruj się w CometAPI już dziś !

FAQ

Jak debugować opóźnienia i przerwy w przesyłaniu strumieniowym?

  • Użyj lokalnego przechwytywania sieciowego (lub zaloguj się za pomocą klienta HTTP), aby sprawdzić przesyłane strumieniowo ramki.
  • Wypróbuj prostszy model, aby potwierdzić, że wąskim gardłem jest ścieżka sieciowa/SDK, a nie sam model.

Który model powinienem wybrać?

  • Używaj mniejszych/tańszych modeli czatów (np. gpt-4o-mini, o4-minilub kompaktowe modele specyficzne dla danego dostawcy) w celu uzyskania wysokiego QPS lub krótkich odpowiedzi.
  • Duże modele multimodalne/ciągłe modele myślowe należy rezerwować do kosztownych zadań wymagających rozumowania.
  • Przeprowadź test porównawczy opóźnień i kosztów: jedną z zalet CometAPI jest możliwość przełączania się między modelami w tej samej ścieżce kodu — możesz szybko wypróbować wiele modeli.

Którą bazę indeksów i wektorów powinienem wybrać?

  • FAISS dla prędkości lokalnej/pojedynczego węzła.
  • Szyszka / Weaviate Aby zarządzać skalą i dostępnością w wielu regionach (LlamaIndex obsługuje wiele baz danych wektorowych poprzez integrację). Wybierz na podstawie skali i opóźnienia.
Czytaj więcej

500+ modeli w jednym API

Do 20% zniżki