Opik by Comet: Nắm toàn quyền kiểm soát vòng đời ứng dụng LLM với nền tảng mã nguồn mở
Tóm tắt
- Opik là nền tảng LLMOps mã nguồn mở do Comet phát triển, hỗ trợ toàn bộ vòng đời ứng dụng LLM từ prototype đến production.
- Ba trụ cột cốt lõi: Comprehensive Tracing (theo dõi toàn diện), Automated Evaluations (đánh giá tự động) và Production-ready Dashboards (bảng điều khiển sẵn sàng cho môi trường thực).
- Hỗ trợ self-hosted thông qua Docker Compose hoặc Kubernetes/Helm, toàn bộ dữ liệu trace nằm trên hạ tầng của chính tổ chức.
- Tích hợp trực tiếp với LangChain, LlamaIndex, OpenAI và hàng chục framework LLM phổ biến khác chỉ bằng vài dòng code Python.
- Có khả năng xử lý hơn 40 triệu trace mỗi ngày, phù hợp cho cả môi trường development lẫn enterprise production.
Tại sao kỷ nguyên agentic đòi hỏi một công cụ quan sát chuyên biệt
Việc xây dựng một ứng dụng LLM hoạt động ổn định trong môi trường thực tế khác hoàn toàn so với việc chạy thành công một notebook demo. Khi hệ thống chuyển từ một lời gọi API đơn giản sang các chuỗi reasoning phức tạp, RAG pipeline nhiều bước, hoặc các agentic workflow với tool-calling, khả năng quan sát (observability) trở thành yếu tố sống còn.
Các kỹ sư AI thường đối mặt với những câu hỏi không có lời giải rõ ràng: Tại sao mô hình trả lời sai trong tình huống cụ thể đó? Retrieval có thực sự lấy đúng context không? Bước nào trong pipeline gây ra độ trễ cao nhất? Mà không có công cụ tracing và đánh giá phù hợp, việc trả lời những câu hỏi này chỉ là phỏng đoán.
Opik – được phát triển bởi đội ngũ Comet – ra đời để lấp đầy khoảng trống đó. Đây là nền tảng LLMOps mã nguồn mở với ba trụ cột chính: tracing toàn diện, đánh giá tự động và giám sát production, tất cả có thể triển khai hoàn toàn trên hạ tầng riêng.

Các tính năng cốt lõi của Opik
Comprehensive tracing: Nhìn thấy mọi bước trong pipeline
Tracing trong Opik không chỉ đơn thuần là ghi lại input và output của một lời gọi LLM. Nền tảng này xây dựng cây trace phân cấp (trace và span), phản ánh đúng kiến trúc thực tế của ứng dụng – từ bước nhận yêu cầu của người dùng, qua các bước retrieval, reranking, đến lời gọi LLM cuối cùng và phản hồi trả về.
Mỗi span có thể chứa: dữ liệu input/output, model name, token usage, metadata tùy chỉnh, nhãn phân loại (tag) và điểm đánh giá. Giao diện UI của Opik cho phép lọc, sắp xếp và so sánh các trace theo nhiều tiêu chí, đồng thời hỗ trợ chú thích thủ công để xây dựng ground-truth dataset cho các vòng đánh giá tiếp theo.
Automated evaluations: Từ vibe check đến đo lường định lượng
Opik cung cấp hai nhóm metric đánh giá chính:
Heuristic metrics là các phép kiểm tra xác định (deterministic), phù hợp khi cần kiểm tra tính đúng đắn về mặt cú pháp hoặc so sánh với reference. Danh sách bao gồm BERTScore, ROUGE, BLEU, Levenshtein distance, RegexMatch, IsJson, và nhiều metric khác.
LLM-as-a-Judge metrics sử dụng chính một LLM để đánh giá output của LLM khác – phương pháp phù hợp cho các tiêu chí mang tính ngữ nghĩa và định tính như phát hiện hallucination, kiểm tra tính liên quan của câu trả lời (Answer Relevance), đo độ chính xác context trong RAG (Context Precision / Context Recall), kiểm duyệt nội dung (Moderation), hay đánh giá mức độ hoàn thành tác vụ của agent (Agent Task Completion).
Theo mặc định, Opik sử dụng GPT-5-nano của OpenAI làm judge model, nhưng có thể dễ dàng thay thế bằng bất kỳ provider nào được hỗ trợ bởi LiteLLM.
Production-ready dashboards: Từ thử nghiệm sang vận hành thực tế
Opik không dừng lại ở môi trường development. Hệ thống monitoring cho phép ghi nhận tất cả production trace, phân tích hiệu suất mô hình trên dữ liệu thực tế chưa từng thấy, và tự động tạo dataset mới cho các vòng iteration tiếp theo. Nền tảng được kiểm chứng ở quy mô xử lý hơn 40 triệu trace mỗi ngày.
Hướng dẫn cài đặt Opik
Triển khai cục bộ với Docker Compose
Đây là cách nhanh nhất để có một instance Opik đầy đủ tính năng chạy trên máy local hoặc server nội bộ. Yêu cầu tiên quyết là Docker và Docker Compose đã được cài đặt sẵn.
# Clone repository Opik
git clone https://github.com/comet-ml/opik.git
# Di chuyển vào thư mục dự án
cd opik
# Khởi động toàn bộ nền tảng (Linux / macOS)
./opik.sh
# Trên Windows (PowerShell)
.\opik.ps1Sau khi khởi động, giao diện web của Opik sẽ sẵn sàng tại http://localhost:5173. Dữ liệu trace được lưu trữ bền vững tại thư mục ~/opik trên máy chủ, đảm bảo không mất dữ liệu khi restart hay nâng cấp.
Để nâng cấp hoặc chạy một phiên bản cụ thể:
# Chạy phiên bản cụ thể
OPIK_VERSION=latest ./opik.sh
# Dừng nền tảng
./opik.sh --stopTriển khai production với Kubernetes và Helm
Với môi trường production quy mô lớn, Opik cung cấp Helm chart để triển khai trên Kubernetes. Tùy chọn này phù hợp cho các tổ chức cần độ sẵn sàng cao (high availability), horizontal scaling và tuân thủ các tiêu chuẩn bảo mật doanh nghiệp.
Cài đặt Python SDK
pip install opik
# Cấu hình kết nối đến instance local
opik configure --use_localHoặc cấu hình trực tiếp trong code:
import opik
opik.configure(use_local=True)Tích hợp Opik vào mã nguồn Python hiện có
Tracing bằng context manager
Opik cung cấp hai context manager chính để ghi nhận trace và span một cách linh hoạt:
import opik
import openai
client_llm = openai.OpenAI()
def rag_pipeline(user_query: str, context: str) -> str:
with opik.start_as_current_trace("rag-pipeline", project_name="my-rag-app") as trace:
trace.update(input={"query": user_query})
with opik.start_as_current_span("llm-generation", type="llm") as span:
response = client_llm.chat.completions.create(
model="gpt-4o-mini",
messages=[
{"role": "system", "content": "Trả lời dựa trên context được cung cấp."},
{"role": "user", "content": f"Context: {context}\n\nCâu hỏi: {user_query}"}
]
)
answer = response.choices[0].message.content
span.update(
input={"query": user_query, "context": context},
output={"answer": answer},
model="gpt-4o-mini",
usage={"total_tokens": response.usage.total_tokens}
)
trace.update(output={"answer": answer})
return answerTracing bằng decorator @track
Với các codebase sử dụng nhiều hàm Python độc lập, decorator @track là cách tiếp cận gọn gàng hơn:
import opik
@opik.track(project_name="agent-project")
def retrieve_documents(query: str) -> list:
# Logic retrieval từ vector store
return []
@opik.track(project_name="agent-project")
def generate_response(query: str, docs: list) -> str:
# Logic gọi LLM
return ""
@opik.track(project_name="agent-project")
def full_agent_pipeline(user_input: str) -> str:
docs = retrieve_documents(user_input) # Span lồng nhau tự động
response = generate_response(user_input, docs) # Span lồng nhau tự động
return responseOpik tự động nhận diện các hàm được gọi lồng nhau và tạo nested span tương ứng, mà không cần bất kỳ cấu hình bổ sung nào.
Thiết lập bộ đánh giá tự động
Chạy evaluation với LLM-as-a-Judge
Sau khi thu thập trace từ production hoặc từ tập dataset kiểm thử, việc thiết lập vòng đánh giá tự động chỉ cần vài bước:
import opik
from opik.evaluation import evaluate
from opik.evaluation.metrics import Hallucination, AnswerRelevance, ContextRecall
# Định nghĩa hàm task cần đánh giá
def llm_task(input_data: dict) -> dict:
# Gọi pipeline RAG hoặc LLM của bạn ở đây
return {"output": "Câu trả lời được tạo ra"}
# Cấu hình các metric
metrics = [
Hallucination(),
AnswerRelevance(),
ContextRecall()
]
# Lấy dataset từ Opik hoặc định nghĩa trực tiếp
dataset = opik.get_client().get_dataset("rag-test-dataset")
# Chạy evaluation
evaluate(
experiment_name="rag-pipeline-v2-eval",
dataset=dataset,
task=llm_task,
scoring_metrics=metrics,
project_name="my-rag-app"
)Tuỳ chỉnh judge model
from opik.evaluation.metrics import Hallucination
# Dùng Claude của Anthropic thay vì OpenAI mặc định
metric = Hallucination(
model="bedrock/anthropic.claude-3-sonnet-20240229-v1:0"
)
score = metric.score(
input="Thủ đô của Pháp là gì?",
output="Thủ đô của Pháp là Paris."
)
print(score.value) # 0.0 - không phát hiện hallucinationOpik self-hosted và bài toán bảo mật dữ liệu
Phần lớn các giải pháp LLM monitoring trên thị trường hiện nay hoạt động theo mô hình cloud-only, tức là toàn bộ trace – bao gồm prompt, context, và output – được gửi lên server của bên thứ ba để xử lý và lưu trữ. Điều này đặt ra rủi ro đáng kể trong các ngữ cảnh nhạy cảm: dữ liệu khách hàng trong ngành tài chính, thông tin y tế, tài liệu nội bộ doanh nghiệp, hay bất kỳ ứng dụng nào phải tuân thủ GDPR, HIPAA hoặc các quy định bảo mật địa phương.
Opik giải quyết vấn đề này triệt để thông qua mô hình self-hosted. Khi triển khai với Docker Compose hoặc Kubernetes, toàn bộ dữ liệu trace được lưu trữ trên hạ tầng của chính tổ chức. Không có dữ liệu nào rời khỏi vành đai bảo mật nội bộ. Đội ngũ kỹ thuật kiểm soát hoàn toàn quá trình nâng cấp, sao lưu và phân quyền truy cập.
Bộ tính năng đầy đủ – bao gồm tracing, evaluation, dashboard và agent optimization – đều có mặt trong phiên bản mã nguồn mở mà không có giới hạn hay tính năng bị khóa sau paywall. Đây là điểm khác biệt căn bản so với nhiều nền tảng LLMOps khác vốn chỉ cung cấp tính năng cốt lõi miễn phí trong khi ẩn các công cụ quan trọng phía sau gói subscription.
Opik từ Comet là một trong số ít nền tảng LLMOps mã nguồn mở đáp ứng được cả ba tiêu chí quan trọng mà một nhóm kỹ thuật AI nghiêm túc cần: độ sâu về kỹ thuật trong tracing và evaluation, khả năng tự triển khai để bảo vệ dữ liệu, và sự tích hợp liền mạch với hệ sinh thái LLM hiện tại.
Từ việc debug một agentic workflow đến việc thiết lập pipeline đánh giá tự động chạy trong CI/CD, Opik cung cấp đủ công cụ để đưa phát triển ứng dụng LLM từ giai đoạn “hoạt động được” sang “hoạt động đáng tin cậy và đo lường được”.












