Alibaba Cloud mendefinisikan bidang LLM Trace berdasarkan standar OpenTelemetry dan konsep dari domain aplikasi model bahasa besar (LLM). Bidang-bidang ini memperluas Attributes, Resources, dan Events untuk menggambarkan semantik data jejak aplikasi LLM, mencakup operasi utama seperti permintaan input dan output LLM serta konsumsi token. Mereka menyediakan data semantik yang kaya dan sadar konteks untuk skenario seperti Completion, Chat, Generasi yang Diperkaya dengan Pengambilan Data (RAG), Agen, dan Tool guna memfasilitasi pelacakan dan pelaporan data. Definisi bidang semantik ini akan terus diperbarui dan dioptimalkan seiring perkembangan komunitas.
Definisi bidang Span tingkat atas mengacu pada standar terbuka OpenTelemetry. Untuk informasi lebih lanjut tentang bidang Trace tingkat atas yang disimpan oleh Managed Service for OpenTelemetry, lihat Parameter analisis jejak.
SpanKind yang terkait dengan LLM merupakan sebuah Attribute dan berbeda dari jenis Span yang didefinisikan dalam OpenTelemetry Traces.
Bidang umum
Attributes
AttributeKey | Deskripsi | Tipe | Nilai contoh | Tingkat kebutuhan |
| ID Sesi | String |
| Diperlukan secara kondisional |
| ID pengguna akhir aplikasi. | String |
| Diperlukan secara kondisional |
| Jenis operasi | String | Lihat LLM Span Kind | Diperlukan |
| Jenis framework yang digunakan. | String |
| Diperlukan secara kondisional |
Resources
ResourceKey | Deskripsi | Tipe | Nilai contoh | Tingkat kebutuhan |
| Nama aplikasi | String |
| Diperlukan |
Chain
Chain adalah alat yang menghubungkan LLM dengan berbagai komponen lainnya untuk menjalankan tugas kompleks. Chain dapat mencakup Pengambilan (Retrieval), Penyematan (Embedding), panggilan LLM, bahkan Chain bersarang.
Attributes
AttributeKey | Deskripsi | Tipe | Nilai contoh | Tingkat kebutuhan |
| Jenis operasi. Enumerasi khusus untuk spanKind LLM. Untuk Chain, nilai harus berupa | String |
| Diperlukan |
| Jenis operasi sekunder | String |
| Diperlukan secara kondisional |
| Konten input | String |
| Direkomendasikan |
| Konten yang dikembalikan | String |
| Direkomendasikan |
| Waktu hingga token pertama. Waktu keseluruhan sejak server menerima permintaan pengguna hingga paket pertama tanggapan dikembalikan. Satuan dalam nanodetik. | Integer | 1000000 | Direkomendasikan |
Retriever
Retriever biasanya mengakses penyimpanan vektor atau database untuk mengambil data, sering digunakan guna melengkapi konteks dan meningkatkan akurasi serta efisiensi tanggapan LLM.
Attributes
AttributeKey | Deskripsi | Tipe | Nilai contoh | Tingkat kebutuhan |
| Jenis operasi. Enumerasi khusus untuk spanKind LLM. Untuk Retriever, nilai harus berupa | String |
| Diperlukan |
| Kueri singkat untuk pengambilan. | String |
| Direkomendasikan |
| Daftar dokumen yang diambil. | Array JSON |
| Diperlukan |
Reranker
Reranker mengurutkan beberapa dokumen input berdasarkan relevansinya terhadap suatu kueri dan dapat mengembalikan dokumen top-K untuk LLM.
Attributes
AttributeKey | Deskripsi | Tipe | Nilai contoh | Tingkat kebutuhan |
| Jenis operasi. Enumerasi khusus untuk spanKind LLM. Untuk Reranker, nilai harus berupa | String |
| Diperlukan |
| Parameter input untuk permintaan Reranker. | String |
| Opsional |
| Nama model yang digunakan oleh Reranker. | String |
| Opsional |
| Peringkat setelah penyusunan ulang. | Integer |
| Opsional |
| Metadata terkait dokumen input untuk penyusunan ulang. Struktur ini berupa array JSON. Metadata berisi informasi dasar dokumen, seperti path, nama file, dan sumber. | String | - | Diperlukan |
| Metadata terkait dokumen output setelah penyusunan ulang. Struktur ini berupa array JSON. Metadata berisi informasi dasar dokumen, seperti path, nama file, dan sumber. | String | - | Diperlukan |
LLM
Span LLM menunjukkan panggilan ke model bahasa besar, misalnya melalui SDK atau OpenAPI untuk meminta inferensi atau generasi teks dari berbagai model besar.
Attributes
AttributeKey | Deskripsi | Tipe | Nilai contoh | Tingkat kebutuhan |
| Jenis operasi. Enumerasi khusus untuk spanKind LLM. Untuk LLM, nilai harus berupa | String |
| Diperlukan |
| Jenis operasi sekunder | String |
| Opsional |
| Templat prompt | String |
| Opsional |
| Nilai spesifik untuk templat prompt. | String |
| Opsional |
| Nomor versi templat prompt. | String |
| Opsional |
| Penyedia model besar. | String |
| Diperlukan |
| Parameter input untuk panggilan LLM. | String |
| Opsional |
| Nama model | String |
| Opsional |
| ID unik percakapan. ID ini sebaiknya dikumpulkan jika ID sesi dapat dengan mudah diperoleh selama instrumentasi. | String |
| Diperlukan secara kondisional |
| Jenis output yang ditentukan dalam permintaan LLM. Informasi ini sebaiknya dikumpulkan jika tersedia dan permintaan menentukan jenis tertentu, seperti format output. | String |
| Diperlukan secara kondisional |
| Jumlah kandidat generasi yang diminta dari LLM. | Int |
| Diperlukan secara kondisional jika nilainya bukan 1 |
| Nama model yang ditentukan dalam permintaan LLM. | String |
| Diperlukan |
| Seed yang ditentukan dalam permintaan LLM. | String |
| Diperlukan secara kondisional |
| Hukuman frekuensi yang diatur dalam permintaan LLM. | Float |
| Direkomendasikan |
| Jumlah maksimum token yang ditentukan dalam permintaan LLM. | Integer |
| Direkomendasikan |
| Hukuman keberadaan yang diatur dalam permintaan LLM. | Float |
| Direkomendasikan |
| Suhu yang ditentukan dalam permintaan LLM. | Float |
| Direkomendasikan |
| Nilai top_p yang ditentukan dalam permintaan LLM. | Float |
| Direkomendasikan |
| Nilai top_k yang ditentukan dalam permintaan LLM. | Float |
| Direkomendasikan |
| Menunjukkan apakah tanggapan dialirkan (streamed). Jika bidang ini tidak ada, nilainya dianggap false. | Boolean |
| Direkomendasikan |
| Urutan penghenti untuk LLM. | String[] |
| Direkomendasikan |
| Konten pemanggilan tool. (Akan ditinggalkan dan diganti dengan | String |
| Direkomendasikan |
| ID unik yang dihasilkan oleh LLM. | String |
| Direkomendasikan |
| Nama model yang digunakan untuk generasi LLM. | String |
| Direkomendasikan |
| Alasan mengapa LLM berhenti menghasilkan. | String[] |
| Direkomendasikan |
| Waktu hingga token pertama untuk model besar itu sendiri dalam skenario tanggapan streaming. Ini merepresentasikan waktu keseluruhan sejak server menerima permintaan pengguna hingga paket pertama tanggapan dikembalikan. Satuan dalam nanodetik. | Integer |
| Direkomendasikan |
| Waktu inferensi model penalaran. Ini merepresentasikan durasi proses penalaran dalam tanggapan. Satuan dalam milidetik. | Integer |
| Direkomendasikan |
| Jumlah token yang digunakan untuk input. | Integer |
| Direkomendasikan |
| Jumlah token yang digunakan untuk output. | Integer |
| Direkomendasikan |
| Jumlah total token yang digunakan. | Integer |
| Direkomendasikan |
| Tautan ke konten input model. | String |
| Direkomendasikan |
| Tautan ke konten output model. | String |
| Direkomendasikan |
| Tautan ke konten prompt sistem. Digunakan untuk merekam secara terpisah tautan eksternal ke konten prompt sistem (/instruksi sistem). Jika konten prompt sistem dapat diperoleh secara terpisah, konten tersebut sebaiknya direkam dalam bidang ini. Jika konten prompt sistem merupakan bagian dari panggilan model, maka harus direkam dalam tautan yang sesuai dengan properti | String |
| Direkomendasikan jika tersedia |
| Konten input model. Pesan harus disediakan sesuai urutan pengirimannya ke model atau agen. Secara default, informasi ini tidak boleh dikumpulkan kecuali pengguna secara eksplisit mengaktifkannya. | String |
| Opsional |
| Konten output model. Pesan harus disediakan sesuai urutan pengirimannya ke model atau agen. Secara default, informasi ini tidak boleh dikumpulkan kecuali pengguna secara eksplisit mengaktifkannya. | String |
| Opsional |
| Konten prompt sistem. Digunakan untuk merekam secara terpisah konten prompt sistem (/instruksi sistem) sebagai string JSON. Jika konten prompt sistem dapat diperoleh secara terpisah, konten tersebut harus direkam dalam bidang ini. Jika konten prompt sistem merupakan bagian dari panggilan model, maka harus direkam dalam properti Secara default, informasi ini tidak boleh dikumpulkan kecuali pengguna secara eksplisit mengaktifkannya. | String |
| Opsional |
| Konten penalaran dari model penalaran. Merepresentasikan konten proses penalaran dalam tanggapan. Batas panjang default adalah 1024 karakter. Konten yang melebihi batas ini harus dipotong. | String |
| Opsional |
| Definisi tool | String |
| Direkomendasikan |
Embedding
Span Embedding merepresentasikan proses penyematan, seperti operasi untuk menyematkan teks ke dalam model besar. Hasilnya dapat digunakan dalam kueri kemiripan guna mengoptimalkan operasi selanjutnya.
Attributes
AttributeKey | Deskripsi | Tipe | Nilai contoh | Tingkat kebutuhan |
| Jenis operasi. Enumerasi khusus untuk spanKind LLM. Untuk Embedding, nilai harus berupa | String |
| Diperlukan |
| Konsumsi token untuk teks input. | Integer |
| Opsional |
| Total konsumsi token untuk penyematan. | Integer |
| Opsional |
| Nama model penyematan. (Akan ditinggalkan dan diganti dengan | String |
| Opsional |
| Hasil penyematan. (Akan ditinggalkan). | String | - | Opsional |
| Jenis operasi sekunder | String |
| Diperlukan secara kondisional |
| Format encoding | String | ["base64"] | Direkomendasikan |
| Jumlah dimensi penyematan. | Integer | 100 | Direkomendasikan |
| Nama model yang ditentukan dalam permintaan Penyematan. | String |
| Diperlukan secara kondisional |
Tool
Span Tool menunjukkan panggilan ke alat eksternal, seperti pemanggilan kalkulator atau permintaan informasi cuaca terbaru dari API cuaca.
Attributes
AttributeKey | Deskripsi | Tipe | Nilai contoh | Tingkat kebutuhan |
| Jenis operasi. Enumerasi khusus untuk spanKind LLM. Untuk Tool, nilai harus berupa | String |
| Diperlukan |
| Nama tool. (Akan ditinggalkan dan diganti dengan | String |
| Diperlukan |
| Deskripsi tool. (Akan ditinggalkan dan diganti dengan | String |
| Diperlukan |
| Parameter input tool. (Akan ditinggalkan dan diganti dengan | String |
| Diperlukan |
| Jenis operasi sekunder | String |
| Diperlukan secara kondisional |
| ID Tool | String |
| Direkomendasikan |
| Deskripsi tool | String |
| Direkomendasikan |
| Nama tool | String |
| Direkomendasikan |
| Jenis tool | String |
| Direkomendasikan |
| Argumen input untuk pemanggilan tool. | String |
| Opsional |
| Nilai kembalian dari pemanggilan tool. | String |
| Opsional |
Agent
Span Agent merepresentasikan skenario agen—jenis Chain yang lebih kompleks yang membuat keputusan langkah berikutnya berdasarkan hasil inferensi model besar. Contohnya mencakup beberapa panggilan ke LLM dan Tool, dengan pengambilan keputusan bertahap untuk mencapai jawaban akhir.
Attributes
AttributeKey | Deskripsi | Tipe | Nilai contoh | Tingkat kebutuhan |
| Jenis operasi. Enumerasi khusus untuk spanKind LLM. Untuk Agent, nilai harus berupa | String |
| Diperlukan |
| Parameter input. Mencatat input asli. | String |
| Diperlukan |
| Jenis MIME input. | String |
| Opsional |
| Hasil kembalian. Mengembalikan output akhir. | String |
| Diperlukan |
| Jenis MIME output. | String |
| Opsional |
| Waktu hingga token pertama untuk Agent. Ini merepresentasikan waktu keseluruhan sejak server menerima permintaan pengguna hingga paket pertama tanggapan dikembalikan. Satuan dalam nanodetik. | Integer |
| Direkomendasikan |
Task
Span Task menunjukkan metode kustom internal, seperti pemanggilan fungsi lokal atau logika aplikasi lainnya.
Attributes
AttributeKey | Deskripsi | Tipe | Nilai contoh | Tingkat kebutuhan |
| Jenis operasi. Enumerasi khusus untuk spanKind LLM. Untuk Task, nilai harus berupa | String |
| Diperlukan |
| Parameter input | String | Format JSON kustom | Opsional |
| Jenis MIME input. | String |
| Opsional |
| Jenis MIME output. | String |
| Opsional |