Toolverse
Wszystkie skille

python-sdk

autor: comet-ml

Wzorce SDK Pythona do śledzenia i logowania operacji w Opik — integracje z popularnymi bibliotekami AI.

Instalacja

Wybierz klienta i sklonuj repozytorium do odpowiedniego katalogu skilli.

Instalacja

Szybkie info

Kategoria
Backend
Wyświetlenia
22

O skillu

Skill zawiera gotowe wzorce architektoniczne do pracy z Opik SDK w Pythonie. Obejmuje trzy warstwy: publiczny interfejs API, przetwarzanie wiadomości oraz REST client. Dowiesz się, jak prawidłowo obsługiwać operacje asynchroniczne, kiedy użyć flush(), oraz jak integrować biblioteki takie jak OpenAI, Anthropic, LangChain i LlamaIndex. Skill wyjaśnia różnicę między operacjami fire-and-forget a blokowaniem, oraz pokazuje wzorce do method patchingu i callback-based integracji.

Jak używać

  1. Zainstaluj Opik SDK dla Pythona i upewnij się, że masz dostęp do repozytorium comet-ml/opik. Skill zawiera wzorce dla trzech warstw architektury: publicznego API (opik.Opik, @opik.track), przetwarzania wiadomości (queue, batching, retry) oraz REST client.
  2. Wybierz odpowiedni wzorzec integracji na podstawie biblioteki, którą używasz: jeśli biblioteka ma callbacks (LangChain, LlamaIndex), użyj wzorca callback-based; jeśli nie ma callbacks (OpenAI, Anthropic), zastosuj method patching; jeśli callbacks są zawodne, wybierz podejście hybrydowe.
  3. Dla method patchingu zaimportuj funkcję track z odpowiedniego modułu integracji (np. track_anthropic z opik.integrations.anthropic), a następnie opakowaj klienta: tracked_client = track_anthropic(client). To automatycznie będzie śledzić wywołania metod.
  4. Dla callback-based integracji utwórz instancję trackera (np. OpikTracer z opik.integrations.langchain) i przekaż go w konfiguracji: chain.invoke(input, config={"callbacks": [tracer]}).
  5. Jeśli używasz dekoratora @opik.track, opakowuj funkcje, które chcesz śledzić — automatycznie utworzy spany i przechwyci input/output bez dodatkowego kodu.
  6. Pamiętaj, że operacje takie jak trace(), span() i log_traces_feedback_scores() są asynchroniczne (fire-and-forget), podczas gdy create_dataset(), get_dataset(), search_traces() są synchroniczne i blokują. Zawsze wywołaj client.flush() przed wyjściem z programu, aby upewnić się, że wszystkie asynchroniczne operacje zostały przetworzone.

Podobne skille