Files
wehub-resource-sync 5a558eb09e
TypeScript SDK Compatibility V1.x E2E Tests / Select Node version matrix (push) Has been cancelled
TypeScript SDK Compatibility V1.x E2E Tests / TypeScript SDK Compatibility V1.x E2E Tests Node ${{matrix.node_version}} (push) Has been cancelled
TypeScript SDK E2E Tests / TypeScript SDK E2E Tests Node ${{matrix.node_version}} (push) Has been cancelled
Opik Optimizer - E2E Tests / build-opik (push) Has been cancelled
TypeScript SDK Compatibility V1.x E2E Tests / build-opik (push) Has been cancelled
Python SDK E2E Tests / Select Python version matrix (push) Has been cancelled
Python SDK E2E Tests / Python SDK E2E Tests ${{matrix.python_version}} (push) Has been cancelled
Python SDK E2E Tests / build-opik (push) Has been cancelled
Python SDK Compatibility V1.x E2E Tests / Select Python version matrix (push) Has been cancelled
Python SDK Compatibility V1.x E2E Tests / Python SDK Compatibility V1.x E2E Tests ${{matrix.python_version}} (push) Has been cancelled
Python SDK Compatibility V1.x E2E Tests / build-opik (push) Has been cancelled
TypeScript SDK E2E Tests / Select Node version matrix (push) Has been cancelled
TypeScript SDK E2E Tests / build-opik (push) Has been cancelled
Opik Optimizer - E2E Tests / Opik Optimizer E2E Tests Python ${{matrix.python_version}} (push) Has been cancelled
Opik Optimizer - E2E Tests / Opik Optimizer Integration Smoke Tests (push) Has been cancelled
🐙 Code Quality / detect (push) Has been cancelled
🐙 Code Quality / lint (${{ matrix.leg.name }}) (push) Has been cancelled
🐙 Code Quality / summary (push) Has been cancelled
TypeScript SDK Library Integration Tests / Check Secrets (push) Has been cancelled
TypeScript SDK Library Integration Tests / opik-vercel (Vercel AI SDK / eve) (push) Has been cancelled
SDK Library Integration Tests Runner / Check Secrets (push) Has been cancelled
SDK Library Integration Tests Runner / Missed OpenAI API Key Warning (push) Has been cancelled
SDK Library Integration Tests Runner / Build (push) Has been cancelled
SDK Library Integration Tests Runner / openai_tests (push) Has been cancelled
SDK Library Integration Tests Runner / langchain_tests (push) Has been cancelled
SDK Library Integration Tests Runner / langchain_legacy_tests (push) Has been cancelled
SDK Library Integration Tests Runner / llama_index_tests (push) Has been cancelled
SDK Library Integration Tests Runner / anthropic_tests (push) Has been cancelled
SDK Library Integration Tests Runner / mistral_tests (push) Has been cancelled
SDK Library Integration Tests Runner / groq_tests (push) Has been cancelled
SDK Library Integration Tests Runner / aisuite_tests (push) Has been cancelled
SDK Library Integration Tests Runner / haystack_tests (push) Has been cancelled
SDK Library Integration Tests Runner / dspy_tests (push) Has been cancelled
SDK Library Integration Tests Runner / crewai_v0_tests (push) Has been cancelled
SDK Library Integration Tests Runner / crewai_v1_tests (push) Has been cancelled
SDK Library Integration Tests Runner / genai_tests (push) Has been cancelled
SDK Library Integration Tests Runner / adk_tests (push) Has been cancelled
SDK Library Integration Tests Runner / adk_legacy_1_3_0_tests (push) Has been cancelled
SDK Library Integration Tests Runner / evaluation_metrics_tests (push) Has been cancelled
SDK Library Integration Tests Runner / bedrock_tests (push) Has been cancelled
SDK Library Integration Tests Runner / litellm_tests (push) Has been cancelled
SDK Library Integration Tests Runner / harbor_tests (push) Has been cancelled
SDK Library Integration Tests Runner / Slack Notification (push) Has been cancelled
Lint Opik Helm Chart / render-equality (push) Has been cancelled
Opik Optimizer - Unit Tests / Opik Optimizer Unit Tests Python ${{matrix.python_version}} (push) Has been cancelled
Python BE E2E Tests / Python BE E2E (push) Has been cancelled
Python Backend Tests / run-python-backend-tests (push) Has been cancelled
Python SDK Unit Tests / Python SDK Unit Tests ${{matrix.python_version}} (push) Has been cancelled
Release Drafter / update_release_draft (push) Has been cancelled
SDK E2E Libraries Integration Tests / Check Secrets (push) Has been cancelled
SDK E2E Libraries Integration Tests / Missed OpenAI API Key Warning (push) Has been cancelled
SDK E2E Libraries Integration Tests / build-opik (push) Has been cancelled
SDK E2E Libraries Integration Tests / E2E Lib Integration Python ${{matrix.python_version}} (push) Has been cancelled
TypeScript SDK Integration Build & Publish / build-and-publish (opik-gemini) (push) Has been cancelled
TypeScript SDK Integration Build & Publish / build-and-publish (opik-langchain) (push) Has been cancelled
TypeScript SDK Integration Build & Publish / build-and-publish (opik-openai) (push) Has been cancelled
TypeScript SDK Integration Build & Publish / build-and-publish (opik-otel) (push) Has been cancelled
TypeScript SDK Integration Build & Publish / build-and-publish (opik-vercel) (push) Has been cancelled
TypeScript SDK Build & Publish / build-and-publish (push) Has been cancelled
TypeScript SDK Unit Tests / Test on Node ${{ matrix.node-version }} (push) Has been cancelled
Backend Tests / discover-tests (push) Has been cancelled
Backend Tests / ${{ matrix.name }} (push) Has been cancelled
Build and Publish SDK / build-and-publish (push) Has been cancelled
Build Opik Docker Images / set-version (push) Has been cancelled
Build Opik Docker Images / build-backend (push) Has been cancelled
Build Opik Docker Images / build-sandbox-executor-python (push) Has been cancelled
Build Opik Docker Images / build-python-backend (push) Has been cancelled
Build Opik Docker Images / build-frontend (push) Has been cancelled
Build Opik Docker Images / create-git-tag (push) Has been cancelled
ClickHouse Migration Cluster Check / validate-clickhouse-migrations (push) Has been cancelled
Docs - Publish / run (push) Has been cancelled
E2E Tests - Post Merge (v2) / 🧪 E2E v2 Tests (${{ github.event.inputs.tier || 't1' }}) (push) Has been cancelled
E2E Tests - Post Merge (v2) / 📢 Slack Notification (push) Has been cancelled
Frontend Unit Tests / Test on Node 20 (push) Has been cancelled
Guardrails E2E Tests / Select Python version matrix (push) Has been cancelled
Guardrails E2E Tests / Guardrails E2E Tests ${{matrix.python_version}} (push) Has been cancelled
Guardrails E2E Tests / 📢 Slack Notification (push) Has been cancelled
Guardrails Backend Unit Tests / Guardrails Backend Unit Tests (push) Has been cancelled
Guardrails Backend Unit Tests / 📢 Slack Notification (push) Has been cancelled
Lint Opik Helm Chart / lint-helm-chart (Helm v3.21.0) (push) Has been cancelled
Lint Opik Helm Chart / lint-helm-chart (Helm v4.2.0) (push) Has been cancelled
Lint Opik Helm Chart / unittest-helm-chart (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 13:25:44 +08:00

511 lines
21 KiB
Plaintext

---
headline: Quickstart | Opik Documentation
og:description: Integrate Opik with your LLM application to log calls and chains efficiently.
Get started with our step-by-step guide.
og:site_name: Opik Documentation
og:title: Quickstart Guide - Opik Integration
title: Quickstart
canonical-url: https://www.comet.com/docs/opik/quickstart
---
This guide helps you integrate the Opik platform with your existing LLM application. The goal of
this guide is to help you log your first LLM calls and chains to the Opik platform.
<Frame>
<img src="/img/home/traces_page_for_quickstart.png" />
</Frame>
## Prerequisites
Before you begin, you'll need to choose how you want to use Opik:
- **Opik Cloud**: Create a free account at [comet.com/opik](https://www.comet.com/signup?from=llm&utm_source=opik&utm_medium=colab&utm_content=quickstart&utm_campaign=opik)
- **Self-hosting**: Follow the [self-hosting guide](/v1/self-host/overview) to deploy Opik locally or on Kubernetes
## Logging your first LLM calls
Opik makes it easy to integrate with your existing LLM application, here are some of our most
popular integrations:
<Tabs>
<Tab title="Python SDK" value="python-function-decorator">
If you are using the Python function decorator, you can integrate by:
<Steps>
<Step>
Install the Opik Python SDK:
```bash
pip install opik
```
</Step>
<Step>
Configure the Opik Python SDK:
```bash
opik configure
```
</Step>
<Step>
Wrap your function with the `@track` decorator:
```python
from opik import track
@track
def my_function(input: str) -> str:
return input
```
All calls to the `my_function` will now be logged to Opik. This works well for any function
even nested ones and is also supported by most integrations (just wrap any parent function
with the `@track` decorator).
</Step>
</Steps>
</Tab>
<Tab title="TypeScript SDK" value="typescript-sdk">
If you want to use the TypeScript SDK to log traces directly:
<Steps>
<Step>
Install the Opik TypeScript SDK:
```bash
npm install opik
```
</Step>
<Step>
Configure the Opik TypeScript SDK by running the interactive CLI tool:
```bash
npx opik-ts configure
```
This will detect your project setup, install required dependencies, and help you configure environment variables.
</Step>
<Step>
Log a trace using the Opik client:
```typescript
import { Opik } from "opik";
const client = new Opik();
const trace = client.trace({
name: "My LLM Application",
input: { prompt: "What is the capital of France?" },
output: { response: "The capital of France is Paris." },
});
trace.end();
await client.flush();
```
All traces will now be logged to Opik. You can also log spans within traces for more detailed observability.
</Step>
</Steps>
</Tab>
<Tab title="OpenAI (Python)" value="openai-python-sdk">
If you are using the OpenAI Python SDK, you can integrate by:
<Steps>
<Step>
Install the Opik Python SDK:
```bash
pip install opik
```
</Step>
<Step>
Configure the Opik Python SDK, this will prompt you for your API key if you are using Opik
Cloud or your Opik server address if you are self-hosting:
```bash
opik configure
```
</Step>
<Step>
Wrap your OpenAI client with the `track_openai` function:
```python
from opik.integrations.openai import track_openai
from openai import OpenAI
# Wrap your OpenAI client
client = OpenAI()
client = track_openai(client)
# Use the client as normal
completion = client.chat.completions.create(
model="gpt-4o",
messages=[
{"role": "user", "content": "Hello, how are you?",
},
],
)
print(completion.choices[0].message.content)
```
All OpenAI calls made using the `client` will now be logged to Opik. You can combine
this with the `@track` decorator to log the traces for each step of your agent.
</Step>
</Steps>
</Tab>
<Tab title="OpenAI (TS)" value="openai-ts-sdk">
If you are using the OpenAI TypeScript SDK, you can integrate by:
<Steps>
<Step>
Install the Opik TypeScript SDK:
```bash
npm install opik-openai
```
</Step>
<Step>
Configure the Opik TypeScript SDK by running the interactive CLI tool:
```bash
npx opik-ts configure
```
This will detect your project setup, install required dependencies, and help you configure environment variables.
</Step>
<Step>
Wrap your OpenAI client with the `trackOpenAI` function:
```typescript
import OpenAI from "openai";
import { trackOpenAI } from "opik-openai";
// Initialize the original OpenAI client
const openai = new OpenAI({
apiKey: process.env.OPENAI_API_KEY,
});
// Wrap the client with Opik tracking
const trackedOpenAI = trackOpenAI(openai);
// Use the tracked client just like the original
const completion = await trackedOpenAI.chat.completions.create({
model: "gpt-4",
messages: [{ role: "user", content: "Hello, how can you help me today?" }],
});
console.log(completion.choices[0].message.content);
// Ensure all traces are sent before your app terminates
await trackedOpenAI.flush();
```
All OpenAI calls made using the `trackedOpenAI` will now be logged to Opik.
</Step>
</Steps>
</Tab>
<Tab title="AI Vercel SDK" value="ai-vercel-sdk">
If you are using the AI Vercel SDK, you can integrate by:
<Steps>
<Step>
Install the Opik Vercel integration:
```bash
npm install opik-vercel
```
</Step>
<Step>
Configure the Opik AI Vercel SDK by running the interactive CLI tool:
```bash
npx opik-ts configure
```
This will detect your project setup, install required dependencies, and help you configure environment variables.
</Step>
<Step>
Initialize the OpikExporter with your AI SDK:
```ts
import { openai } from "@ai-sdk/openai";
import { generateText } from "ai";
import { NodeSDK } from "@opentelemetry/sdk-node";
import { getNodeAutoInstrumentations } from "@opentelemetry/auto-instrumentations-node";
import { OpikExporter } from "opik-vercel";
// Set up OpenTelemetry with Opik
const sdk = new NodeSDK({
traceExporter: new OpikExporter(),
instrumentations: [getNodeAutoInstrumentations()],
});
sdk.start();
// Your AI SDK calls with telemetry enabled
const result = await generateText({
model: openai("gpt-4o"),
prompt: "What is love?",
experimental_telemetry: { isEnabled: true },
});
console.log(result.text);
```
All AI SDK calls with `experimental_telemetry: { isEnabled: true }` will now be logged to Opik.
</Step>
</Steps>
</Tab>
<Tab title="Ollama" value="ollama-python">
If you are using Ollama with Python, you can integrate by:
<Steps>
<Step>
Install the Opik Python SDK:
```bash
pip install opik
```
</Step>
<Step>
Configure the Opik Python SDK:
```bash
opik configure
```
</Step>
<Step>
Integrate Opik with your Ollama calls:
<Tabs>
<Tab title="Ollama Python Package">
Wrap your Ollama calls with the `@track` decorator:
```python
import ollama
from opik import track
@track
def ollama_call(user_message: str):
response = ollama.chat(
model='llama3.1',
messages=[{'role': 'user', 'content': user_message}]
)
return response['message']
# Call your function
result = ollama_call("Say this is a test")
print(result)
```
</Tab>
<Tab title="OpenAI SDK">
Use Opik's OpenAI integration with Ollama's OpenAI-compatible API:
```python
from openai import OpenAI
from opik.integrations.openai import track_openai
# Create an OpenAI client pointing to Ollama
client = OpenAI(
base_url='http://localhost:11434/v1/',
api_key='ollama' # required but ignored
)
# Wrap the client with Opik tracking
client = track_openai(client)
# Call the local Ollama model
response = client.chat.completions.create(
model='llama3.1',
messages=[{'role': 'user', 'content': 'Say this is a test'}]
)
print(response.choices[0].message.content)
```
</Tab>
<Tab title="LangChain">
Use Opik's LangChain integration with Ollama:
```python
from langchain_ollama import ChatOllama
from opik.integrations.langchain import OpikTracer
# Create the Opik tracer
opik_tracer = OpikTracer()
# Create the Ollama model with Opik tracing
llm = ChatOllama(
model="llama3.1",
temperature=0,
).with_config({"callbacks": [opik_tracer]})
# Call the Ollama model
messages = [
("system", "You are a helpful assistant."),
("human", "Say this is a test")
]
response = llm.invoke(messages)
print(response)
```
</Tab>
</Tabs>
All Ollama calls will now be logged to Opik. See the [full Ollama guide](/v1/integrations/ollama) for more advanced usage.
</Step>
</Steps>
</Tab>
<Tab title="ADK" value="adk-python">
If you are using the ADK, you can integrate by:
<Steps>
<Step>
Install the Opik SDK:
```bash
pip install opik google-adk
```
</Step>
<Step>
Configure the Opik SDK by running the `opik configure` command in your terminal:
```bash
opik configure
```
</Step>
<Step>
Wrap your ADK agent with the `OpikTracer`:
```python
from google.adk.agents import Agent
from opik.integrations.adk import OpikTracer, track_adk_agent_recursive
# Create your ADK agent
agent = Agent(
name="helpful_assistant",
model="gemini-2.0-flash",
instruction="You are a helpful assistant that answers user questions."
)
# Wrap your ADK agent with the OpikTracer
opik_tracer = OpikTracer()
track_adk_agent_recursive(agent, opik_tracer)
```
All ADK agent calls will now be logged to Opik.
</Step>
</Steps>
</Tab>
<Tab title="LangGraph" value="langgraph">
If you are using LangGraph, you can integrate by:
<Steps>
<Step>
Install the Opik SDK:
```bash
pip install opik
```
</Step>
<Step>
Configure the Opik SDK by running the `opik configure` command in your terminal:
```bash
opik configure
```
</Step>
<Step>
Track your LangGraph graph with `track_langgraph`:
```python
from opik.integrations.langchain import OpikTracer, track_langgraph
# Create your LangGraph graph
graph = ...
app = graph.compile(...)
# Create OpikTracer and track the graph once
# The graph visualization is automatically extracted by track_langgraph
opik_tracer = OpikTracer()
app = track_langgraph(app, opik_tracer)
# Now all invocations are automatically tracked!
result = app.invoke({"messages": [HumanMessage(content = "How to use LangGraph ?")]})
```
All LangGraph calls will now be logged to Opik. No need to pass callbacks on every invocation!
</Step>
</Steps>
</Tab>
<Tab title="AI Wizard" value="ai-installation">
<div style={{"display": "flex", "flexDirection": "row", "gap": "1rem", "alignItems": "center", "justifyContent": "space-between"}}>
<span style={{"& p": {"margin": "0rem"}}}>
<p style={{"margin": "0rem", "fontStyle": "italic"}}>Integrate with Opik faster using this pre-built prompt</p>
</span>
<Button intent="primary" href="cursor:////anysphere.cursor-deeplink/prompt?text=%23+OPIK+Agentic+Onboarding%0A%0A%23%23+Goals%0A%0AYou+must+help+me%3A%0A%0A1.+Integrate+the+Opik+client+with+my+existing+LLM+application%0A2.+Set+up+tracing+for+my+LLM+calls+and+chains%0A%0A%23%23+Rules%0A%0ABefore+you+begin%2C+you+must+understand+and+strictly+adhere+to+these+core+principles%3A%0A%0A1.+Code+Preservation+%26+Integration+Guidelines%3A%0A%0A+++-+Existing+business+logic+must+remain+untouched+and+unmodified%0A+++-+Only+add+Opik-specific+code+%28decorators%2C+imports%2C+handlers%2C+env+vars%29%0A+++-+Integration+must+be+non-invasive+and+backwards+compatible%0A%0A2.+Process+Requirements%3A%0A%0A+++-+Follow+the+workflow+steps+sequentially+without+deviation%0A+++-+Validate+completion+of+each+step+before+proceeding%0A+++-+Request+explicit+approval+for+any+workflow+modifications%0A%0A3.+Documentation+%26+Resources%3A%0A%0A+++-+Reference+official+Opik+documentation+at+https%3A%2F%2Fwww.comet.com%2Fdocs%2Fopik%2Fquickstart.md%0A+++-+Follow+Opik+best+practices+and+recommended+patterns%0A+++-+Maintain+detailed+integration+notes+and+configuration+details%0A%0A4.+Testing+%26+Validation%3A%0A+++-+Verify+Opik+integration+without+impacting+existing+functionality%0A+++-+Validate+tracing+works+correctly+for+all+LLM+interactions%0A+++-+Ensure+proper+error+handling+and+logging%0A%0A%23%23+Integration+Workflow%0A%0A%23%23%23+Step+1%3A+Language+and+Compatibility+Check%0A%0AFirst%2C+analyze+the+codebase+to+identify%3A%0A%0A1.+Primary+programming+language+and+frameworks%0A2.+Existing+LLM+integrations+and+patterns%0A%0ACompatibility+Requirements%3A%0A%0A-+Supported+Languages%3A+Python%2C+JavaScript%2FTypeScript%0A%0AIf+the+codebase+uses+unsupported+languages%3A%0A%0A-+Stop+immediately%0A-+Inform+me+that+the+codebase+is+unsupported+for+AI+integration%0A%0AOnly+proceed+to+Step+2+if%3A%0A%0A-+Language+is+Python+or+JavaScript%2FTypeScript%0A%0A%23%23%23+Step+2%3A+Codebase+Discovery+%26+Entrypoint+Confirmation%0A%0AAfter+verifying+language+compatibility%2C+perform+a+full+codebase+scan+with+the+following+objectives%3A%0A%0A-+LLM+Touchpoints%3A+Locate+all+files+and+functions+that+invoke+or+interface+with+LLMs+or+can+be+a+candidates+for+tracing.%0A-+Entrypoint+Detection%3A+Identify+the+primary+application+entry+point%28s%29+%28e.g.%2C+main+script%2C+API+route%2C+CLI+handler%29.+If+ambiguous%2C+pause+and+request+clarification+on+which+component%28s%29+are+most+important+to+trace+before+proceeding.%0A++%E2%9A%A0%EF%B8%8F+Do+not+proceed+to+Step+3+without+explicit+confirmation+if+the+entrypoint+is+unclear.%0A-+Return+the+LLM+Touchpoints+to+me%0A%0A%23%23%23+Step+3%3A+Discover+Available+Integrations%0A%0AAfter+I+confirm+the+LLM+Touchpoints+and+entry+point%2C+find+the+list+of+supported+integrations+at+https%3A%2F%2Fwww.comet.com%2Fdocs%2Fopik%2Fintegrations%2Foverview.md%0A%0A%23%23%23+Step+4%3A+Deep+Analysis+Confirmed+files+for+LLM+Frameworks+%26+SDKs%0A%0AUsing+the+files+confirmed+in+Step+2%2C+perform+targeted+inspection+to+detect+specific+LLM-related+technologies+in+use%2C+such+as%3A%0ASDKs%3A+openai%2C+anthropic%2C+huggingface%2C+etc.%0AFrameworks%3A+LangChain%2C+LlamaIndex%2C+Haystack%2C+etc.%0A%0A%23%23%23+Step+5%3A+Pre-Implementation+Development+Plan+%28Approval+Required%29%0A%0ADo+not+write+or+modify+code+yet.+You+must+propose+me+a+step-by-step+plan+including%3A%0A%0A-+Opik+packages+to+install%0A-+Files+to+be+modified%0A-+Code+snippets+for+insertion%2C+clearly+scoped+and+annotated%0A-+Where+to+place+Opik+API+keys%2C+with+placeholder+comments+%28Visit+https%3A%2F%2Fcomet.com%2Fopik%2Fyour-workspace-name%2Fget-started+to+copy+your+API+key%29%0A++Wait+for+approval+before+proceeding%21%0A%0A%23%23%23+Step+6%3A+Execute+the+Integration+Plan%0A%0AAfter+approval%3A%0A%0A-+Run+the+package+installation+command+via+terminal+%28pip+install+opik%2C+npm+install+opik%2C+etc.%29.%0A-+Apply+code+modifications+exactly+as+described+in+Step+5.%0A-+Keep+all+additions+minimal+and+non-invasive.%0A++Upon+completion%2C+review+the+changes+made+and+confirm+installation+success.%0A%0A%23%23%23+Step+7%3A+Request+User+Review+and+Wait%0A%0ANotify+me+that+all+integration+steps+are+complete.%0A%22Please+run+the+application+and+verify+if+Opik+is+capturing+traces+as+expected.+Let+me+know+if+you+need+adjustments.%22%0A%0A%23%23%23+Step+8%3A+Debugging+Loop+%28If+Needed%29%0A%0AIf+issues+are+reported%3A%0A%0A1.+Parse+the+error+or+unexpected+behavior+from+feedback.%0A2.+Re-query+the+Opik+docs+using+https%3A%2F%2Fwww.comet.com%2Fdocs%2Fopik%2Fquickstart.md+if+needed.%0A3.+Propose+a+minimal+fix+and+await+approval.%0A4.+Apply+and+revalidate.%0A">
<div style={{"display": "flex", "flexDirection": "row", "gap": "1rem", "alignItems": "center"}}>
<svg xmlns="http://www.w3.org/2000/svg" id="Ebene_1" version="1.1" viewBox="0 0 466.73 532.09">
<path style={{"fill": "#edecec"}} class="st0" d="M457.43,125.94L244.42,2.96c-6.84-3.95-15.28-3.95-22.12,0L9.3,125.94c-5.75,3.32-9.3,9.46-9.3,16.11v247.99c0,6.65,3.55,12.79,9.3,16.11l213.01,122.98c6.84,3.95,15.28,3.95,22.12,0l213.01-122.98c5.75-3.32,9.3-9.46,9.3-16.11v-247.99c0-6.65-3.55-12.79-9.3-16.11h-.01ZM444.05,151.99l-205.63,356.16c-1.39,2.4-5.06,1.42-5.06-1.36v-233.21c0-4.66-2.49-8.97-6.53-11.31L24.87,145.67c-2.4-1.39-1.42-5.06,1.36-5.06h411.26c5.84,0,9.49,6.33,6.57,11.39h-.01Z"/>
</svg>
Open in Cursor
</div>
</Button>
</div>
The pre-built prompt will guide you through the integration process, install the Opik SDK and
instrument your code. It supports both Python and TypeScript codebases, if you are using
another language just let us know and we can help you out.
Once the integration is complete, simply run your application and you will start seeing traces
in your Opik dashboard.
</Tab>
<Tab title="All integrations" value="all_integrations">
Opik has **30+ integrations** with popular frameworks and model providers:
<CardGroup cols={3}>
<Card title="LangChain" href="/v1/integrations/langchain" icon={<img src="/img/tracing/langchain.svg" />} iconPosition="left"/>
<Card title="LlamaIndex" href="/v1/integrations/llama_index" icon={<img src="/img/tracing/llamaindex.svg" />} iconPosition="left"/>
<Card title="Anthropic" href="/v1/integrations/anthropic" icon={<img src="/img/tracing/anthropic.svg" />} iconPosition="left"/>
<Card title="AWS Bedrock" href="/v1/integrations/bedrock" icon={<img src="/img/tracing/bedrock.svg" />} iconPosition="left"/>
<Card title="Google Gemini" href="/v1/integrations/gemini" icon={<img src="/img/tracing/gemini.svg" />} iconPosition="left"/>
<Card title="CrewAI" href="/v1/integrations/crewai" icon={<img src="/img/tracing/crewai.svg" />} iconPosition="left"/>
</CardGroup>
**[View all 30+ integrations →](/v1/integrations/overview)**
</Tab>
</Tabs>
## Analyze your traces
After running your application, you will start seeing your traces in your Opik dashboard:
<video
src="/img/tracing/quickstart.mp4"
width="854"
height="480"
autoPlay
muted
loop
playsInline
preload="auto"
/>
If you don't see traces appearing, reach out to us on [Slack](https://chat.comet.com) or raise an issue on [GitHub](https://github.com/comet-ml/opik/issues) and we'll help you troubleshoot.
## Next steps
Now that you have logged your first LLM calls and chains to Opik, why not check out:
1. [In depth guide on agent observability](/v1/tracing/log_traces): Learn how to customize the data
that is logged to Opik and how to log conversations.
2. [Opik Experiments](/v1/evaluation/concepts): Opik allows you to automated the evaluation process of
your LLM application so that you no longer need to manually review every LLM response.
3. [Opik's evaluation metrics](/v1/evaluation/metrics/overview): Opik provides a suite of evaluation
metrics (Hallucination, Answer Relevance, Context Recall, etc.) that you can use to score your
LLM responses.