MCPcopy Index your code
hub / github.com/alibaba/loongsuite-java

github.com/alibaba/loongsuite-java @v0.2.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.2.0 ↗ · + Follow
677 symbols 1,629 edges 66 files 112 documented · 17%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

LoongSuite Java GenAI Utils

English | 中文

简介

LoongSuite Java GenAI Utils 是阿里巴巴统一可观测数据采集套件 LoongSuite 的关键组件,为 Java GenAI instrumentation 提供共享的遥测生命周期管理能力。

LoongSuite 包含以下关键组件:

基于 OTel GenAI Semantic Conventions v1.41.1 实现,是 opentelemetry-util-genai 的 Java 对等实现。

Maven 坐标

${otel-util-genai.version} 替换为 Maven Central 上 otel-util-genai 最新版本

<dependency>
    <groupId>com.alibaba.loongsuite</groupId>
    <artifactId>otel-util-genai</artifactId>
    <version>${otel-util-genai.version}</version>
</dependency>

安装

${otel-util-genai.version}${opentelemetry.version} 分别替换为 Maven Central 上 otel-util-genaiopentelemetry-bom 的最新发布版本。

Maven

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>io.opentelemetry</groupId>
            <artifactId>opentelemetry-bom</artifactId>
            <version>${opentelemetry.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>
<dependencies>
    <dependency>
        <groupId>com.alibaba.loongsuite</groupId>
        <artifactId>otel-util-genai</artifactId>
        <version>${otel-util-genai.version}</version>
    </dependency>
    <dependency>
        <groupId>io.opentelemetry</groupId>
        <artifactId>opentelemetry-sdk</artifactId>
    </dependency>
    <dependency>
        <groupId>io.opentelemetry</groupId>
        <artifactId>opentelemetry-exporter-otlp</artifactId>
    </dependency>
</dependencies>

Gradle

// 使用 Maven Central 上的最新版本
def otelUtilGenaiVersion = '...'      // otel-util-genai
def opentelemetryBomVersion = '...'   // opentelemetry-bom

implementation platform("io.opentelemetry:opentelemetry-bom:${opentelemetryBomVersion}")
implementation "com.alibaba.loongsuite:otel-util-genai:${otelUtilGenaiVersion}"
implementation 'io.opentelemetry:opentelemetry-sdk'
implementation 'io.opentelemetry:opentelemetry-exporter-otlp'

本库仅依赖 OTel API;未配置 SDK 与 Exporter 时不会产出遥测数据。

快速开始

OpenTelemetry openTelemetry =
    AutoConfiguredOpenTelemetrySdk.initialize().getOpenTelemetrySdk();
GenAiTelemetryHandler handler = GenAiTelemetryHandler.create(openTelemetry);

try (InferenceInvocation inv = handler.inference("openai", "gpt-4o")) {
    inv.setInputMessages(
        Collections.singletonList(
            new InputMessage("user", Collections.singletonList(new TextPart("你好")))));
    // 调用你的 LLM 客户端后,记录响应:
    inv.setOutputMessages(
        Collections.singletonList(
            new OutputMessage(
                "assistant",
                Collections.singletonList(new TextPart("你好!")),
                "stop")));
}

完整用法(操作类型、流式、错误处理、环境变量、CompletionHook)见 docs/USAGE_zh.md

文档

文档 说明
docs/USAGE_zh.md 使用指南
examples/README.md Spring Boot 示例(7 种 GenAI 操作)

要求

  • Java 8+
  • OpenTelemetry API(使用最新的 opentelemetry-bom 发布版本)

社区

欢迎反馈与建议。可加入 钉钉用户群钉钉开发者群

用户群 开发者群

相关资源

  • AgentScope:https://github.com/modelscope/agentscope
  • 可观测性社区:https://observability.cn

License

This project is licensed under the Apache License 2.0

Extension points exported contracts — how you extend this code

CompletionHook (Interface)
Hook invoked when a GenAI invocation completes. Implementations are discovered via CompletionHookLoader or r [6 implementers]
otel-util-genai/src/main/java/com/alibaba/loongsuite/otel/util/genai/CompletionHook.java
MessagePart (Interface)
(no doc) [22 implementers]
otel-util-genai/src/main/java/com/alibaba/loongsuite/otel/util/genai/types/MessagePart.java
ToolDefinition (Interface)
(no doc) [6 implementers]
otel-util-genai/src/main/java/com/alibaba/loongsuite/otel/util/genai/types/ToolDefinition.java
CompletionHookContext (Interface)
Provides read-only access to the invocation data available when a CompletionHook is called. [2 implementers]
otel-util-genai/src/main/java/com/alibaba/loongsuite/otel/util/genai/CompletionHookContext.java
EventLogRecord (Interface)
Mutable log event record passed to CompletionHook before emission. Hooks may stamp additional attributes (e. [2 implementers]
otel-util-genai/src/main/java/com/alibaba/loongsuite/otel/util/genai/EventLogRecord.java

Core symbols most depended-on inside this repo

setAttribute
called by 101
otel-util-genai/src/main/java/com/alibaba/loongsuite/otel/util/genai/EventLogRecord.java
getAttributes
called by 80
otel-util-genai/src/main/java/com/alibaba/loongsuite/otel/util/genai/EventLogRecord.java
build
called by 48
otel-util-genai/src/main/java/com/alibaba/loongsuite/otel/util/genai/GenAiTelemetryHandler.java
builder
called by 38
otel-util-genai/src/main/java/com/alibaba/loongsuite/otel/util/genai/GenAiTelemetryHandler.java
getName
called by 27
otel-util-genai/src/main/java/com/alibaba/loongsuite/otel/util/genai/ToolInvocation.java
create
called by 23
otel-util-genai/src/main/java/com/alibaba/loongsuite/otel/util/genai/GenAiTelemetryHandler.java
inference
called by 21
otel-util-genai/src/main/java/com/alibaba/loongsuite/otel/util/genai/GenAiTelemetryHandler.java
toString
called by 16
otel-util-genai/src/main/java/com/alibaba/loongsuite/otel/util/genai/types/UriPart.java

Shape

Method 593
Class 75
Interface 7
Enum 2

Languages

Java100%

Modules by API surface

examples/src/main/java/com/alibaba/loongsuite/otel/util/genai/example/ChatController.java48 symbols
otel-util-genai/src/main/java/com/alibaba/loongsuite/otel/util/genai/InferenceInvocation.java45 symbols
otel-util-genai/src/main/java/com/alibaba/loongsuite/otel/util/genai/GenAiTelemetryHandler.java38 symbols
otel-util-genai/src/main/java/com/alibaba/loongsuite/otel/util/genai/AgentInvocation.java37 symbols
otel-util-genai/src/test/java/com/alibaba/loongsuite/otel/util/genai/GenAiTelemetryHandlerTest.java25 symbols
otel-util-genai/src/main/java/com/alibaba/loongsuite/otel/util/genai/UploadCompletionHook.java19 symbols
otel-util-genai/src/main/java/com/alibaba/loongsuite/otel/util/genai/GenAiInvocation.java18 symbols
otel-util-genai/src/test/java/com/alibaba/loongsuite/otel/util/genai/SemconvComplianceTest.java15 symbols
otel-util-genai/src/main/java/com/alibaba/loongsuite/otel/util/genai/RetrievalInvocation.java15 symbols
otel-util-genai/src/test/java/com/alibaba/loongsuite/otel/util/genai/GenAiContentSerializerTest.java14 symbols
examples/src/main/java/com/alibaba/loongsuite/otel/util/genai/example/RetrievalService.java14 symbols
examples/src/main/java/com/alibaba/loongsuite/otel/util/genai/example/ChatService.java14 symbols

For agents

$ claude mcp add loongsuite-java \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact