OpenLLMetry 项目教程
1. 项目的目录结构及介绍
OpenLLMetry 是一个基于 OpenTelemetry 的开源项目,用于为 LLM(大型语言模型)应用程序提供完整的可观测性。项目的目录结构如下:
openllmetry/
├── docs/
│ ├── getting-started.md
│ ├── instrumentations.md
│ └── ...
├── src/
│ ├── instrumentations/
│ │ ├── openai.py
│ │ ├── anthropic.py
│ │ └── ...
│ ├── sdk/
│ │ ├── __init__.py
│ │ ├── traceloop.py
│ │ └── ...
│ └── ...
├── tests/
│ ├── test_instrumentations.py
│ ├── test_sdk.py
│ └── ...
├── .gitignore
├── LICENSE
├── README.md
├── requirements.txt
└── setup.py
目录结构介绍
docs/
:包含项目的文档文件,如入门指南、插桩指南等。src/
:项目的源代码目录。instrumentations/
:包含各种插桩实现,如 OpenAI、Anthropic 等。sdk/
:包含 SDK 的核心实现,如traceloop.py
。
tests/
:包含项目的测试文件。.gitignore
:Git 忽略文件配置。LICENSE
:项目许可证文件。README.md
:项目介绍和使用说明。requirements.txt
:项目依赖文件。setup.py
:项目安装脚本。
2. 项目的启动文件介绍
项目的启动文件主要是 src/sdk/traceloop.py
,该文件包含了 Traceloop SDK 的核心功能。以下是该文件的主要内容:
# src/sdk/traceloop.py
from opentelemetry import trace
from opentelemetry.sdk.trace import TracerProvider
from opentelemetry.sdk.trace.export import BatchSpanProcessor
from opentelemetry.exporter.otlp.proto.grpc.trace_exporter import OTLPSpanExporter
class Traceloop:
def __init__(self):
self.tracer_provider = TracerProvider()
trace.set_tracer_provider(self.tracer_provider)
span_processor = BatchSpanProcessor(OTLPSpanExporter())
self.tracer_provider.add_span_processor(span_processor)
def init(self, disable_batch=False):
if disable_batch:
span_processor = BatchSpanProcessor(OTLPSpanExporter(), disable_batch=True)
self.tracer_provider.add_span_processor(span_processor)
# 示例使用
from traceloop import Traceloop
Traceloop().init()
启动文件介绍
Traceloop
类:用于初始化 OpenTelemetry 的 TracerProvider 和 SpanProcessor。init
方法:用于初始化 Traceloop,可以选择是否禁用批处理。
3. 项目的配置文件介绍
项目的配置文件主要是 setup.py
和 requirements.txt
。
setup.py
setup.py
文件用于项目的安装和打包。以下是该文件的主要内容:
# setup.py
from setuptools import setup, find_packages
setup(
name='openllmetry',
version='0.1.0',
packages=find_packages(),
install_requires=[
'opentelemetry-api',
'opentelemetry-sdk',
'opentelemetry-exporter-otlp',
# 其他依赖
],
entry_points={
'console_scripts': [
'openllmetry=openllmetry.cli:main',
],
},
)
requirements.txt
requirements.txt
文件列出了项目所需的所有依赖包。以下是该文件的示例内容:
opentelemetry-api==1.0.0
opentelemetry-sdk==1.0.0
opentelemetry-exporter-otlp==1.0.0
# 其他依赖