Bagikan melalui


perpustakaan Microsoft.Extensions.AI

Pengembang .NET perlu mengintegrasikan dan berinteraksi dengan berbagai layanan kecerdasan buatan (AI) yang berkembang di aplikasi mereka. Microsoft.Extensions.AI Pustaka menyediakan pendekatan terpadu untuk mewakili komponen AI generatif, dan memungkinkan integrasi dan interoperabilitas yang mulus dengan berbagai layanan AI. Artikel ini memperkenalkan pustaka dan menyediakan contoh penggunaan mendalam untuk membantu Anda memulai.

Paket

Paket 📦 Microsoft.Extensions.AI.Abstractions menyediakan jenis pertukaran inti, termasuk IChatClient dan IEmbeddingGenerator<TInput,TEmbedding>. Pustaka .NET apa pun yang menyediakan klien LLM dapat mengimplementasikan antarmuka IChatClient untuk memungkinkan integrasi yang mulus dengan kode yang menggunakan pustaka tersebut.

Paket 📦 Microsoft.Extensions.AI memiliki dependensi implisit pada paket Microsoft.Extensions.AI.Abstractions. Paket ini memungkinkan Anda untuk dengan mudah mengintegrasikan komponen seperti pemanggilan alat fungsi otomatis, telemetri, dan penyimpanan sementara ke dalam aplikasi Anda, dengan injeksi dependensi dan pola middleware yang sudah Anda kenal. Misalnya, ini menyediakan metode ekstensi UseOpenTelemetry(ChatClientBuilder, ILoggerFactory, String, Action<OpenTelemetryChatClient>), yang menambahkan dukungan OpenTelemetry ke alur klien obrolan.

Paket mana yang akan dirujuk

Untuk mendapatkan akses ke utilitas tingkat lebih tinggi untuk bekerja dengan komponen AI generatif, gunakan paket Microsoft.Extensions.AI sebagai gantinya (yang mereferensikan Microsoft.Extensions.AI.Abstractions sendiri). Sebagian besar aplikasi dan layanan yang digunakan harus mereferensikan paket Microsoft.Extensions.AI bersama dengan satu atau beberapa pustaka yang menyediakan implementasi konkret dari abstraksi.

Pustaka yang menyediakan implementasi abstraksi biasanya hanya mereferensikan Microsoft.Extensions.AI.Abstractions.

Instal paket-paket tersebut

Untuk informasi tentang cara menginstal paket NuGet, lihat menambahkan paket dotnet atau Mengelola dependensi paket dalam aplikasi .NET.

API dan fungsionalitas

Antarmuka IChatClient

Antarmuka IChatClient mendefinisikan abstraksi klien yang bertanggung jawab untuk berinteraksi dengan layanan AI yang menyediakan kemampuan obrolan. Ini termasuk metode untuk mengirim dan menerima pesan dengan konten multi-modal (seperti teks, gambar, dan audio), baik sebagai set lengkap atau di-streaming secara bertahap.

Untuk informasi selengkapnya dan contoh penggunaan terperinci, lihat Menggunakan antarmuka IChatClient.

Antarmuka IEmbeddingGenerator

Antarmuka IEmbeddingGenerator mewakili pembangkit generik untuk embedding. Untuk parameter jenis generik, TInput adalah jenis nilai input yang disematkan, dan TEmbedding merupakan jenis penyematan yang dihasilkan, yang mewarisi dari Embedding kelas .

Untuk informasi selengkapnya dan contoh penggunaan terperinci, lihat Menggunakan antarmuka IEmbeddingGenerator.

Antarmuka IImageGenerator (eksperimental)

Antarmuka IImageGenerator mewakili generator untuk membuat gambar dari perintah teks atau input lainnya. Antarmuka ini memungkinkan aplikasi untuk mengintegrasikan kemampuan pembuatan gambar dari berbagai layanan AI melalui API yang konsisten. Antarmuka mendukung pembuatan teks ke gambar (dengan memanggil GenerateAsync(ImageGenerationRequest, ImageGenerationOptions, CancellationToken)) dan opsi konfigurasi untuk ukuran dan format gambar. Seperti antarmuka lain di pustaka, antarmuka dapat dikomposisikan dengan middleware untuk penggunaan cache, telemetri, dan keperluan lintas sektoral lainnya.

Untuk informasi selengkapnya, lihat Membuat gambar dari teks menggunakan AI.

Membangun dengan Microsoft.Extensions.AI

Anda dapat mulai membangun dengan Microsoft.Extensions.AI cara berikut:

  • Pengembang pustaka: Jika Anda memiliki pustaka yang menyediakan klien untuk layanan AI, pertimbangkan untuk menerapkan antarmuka di pustaka Anda. Ini memungkinkan pengguna untuk dengan mudah mengintegrasikan paket NuGet Anda melalui abstraksi. Misalnya, lihat contoh implementasi IChatClient dan contoh implementasi IEmbeddingGenerator.
  • Konsumen layanan: Jika Anda mengembangkan pustaka yang menggunakan layanan AI, gunakan abstraksi alih-alih menetapkan secara tetap pada layanan AI tertentu. Pendekatan ini memberi konsumen Anda fleksibilitas untuk memilih penyedia pilihan mereka.
  • Pengembang aplikasi: Gunakan abstraksi untuk menyederhanakan integrasi ke dalam aplikasi Anda. Ini memungkinkan portabilitas di seluruh model dan layanan, memfasilitasi pengujian dan tiruan, memanfaatkan middleware yang disediakan oleh ekosistem, dan mempertahankan API yang konsisten di seluruh aplikasi Anda, bahkan jika Anda menggunakan layanan yang berbeda di berbagai bagian aplikasi Anda.
  • Kontributor ekosistem: Jika Anda tertarik untuk berkontribusi pada ekosistem, pertimbangkan untuk menulis komponen middleware kustom.

Untuk sampel lainnya, lihat repositori GitHub dotnet/ai-samples . Untuk contoh lengkap, lihat eShopSupport.

Lihat juga