Bahasa Kernel Semantik yang didukung
Semantic Kernel berencana memberikan dukungan untuk bahasa berikut:
- C#
- Python
- Java
Meskipun arsitektur keseluruhan kernel konsisten di semua bahasa, kami memastikan SDK untuk setiap bahasa mengikuti paradigma dan gaya umum dalam setiap bahasa untuk membuatnya terasa asli dan mudah digunakan.
Paket SDK yang tersedia
Paket C#
Di C#, ada beberapa paket untuk membantu memastikan bahwa Anda hanya perlu mengimpor fungsionalitas yang Anda butuhkan untuk proyek Anda. Tabel berikut ini memperlihatkan paket yang tersedia di C#.
Nama paket | Deskripsi |
---|---|
Microsoft.SemanticKernel |
Paket utama yang mencakup semuanya untuk memulai |
Microsoft.SemanticKernel.Core |
Paket inti yang menyediakan implementasi untuk Microsoft.SemanticKernel.Abstractions |
Microsoft.SemanticKernel.Abstractions |
Abstraksi dasar untuk Kernel Semantik |
Microsoft.SemanticKernel.Connectors.OpenAI |
Konektor untuk OpenAI |
Microsoft.SemanticKernel.Connectors.HuggingFace |
Konektor untuk memeluk model Wajah |
Microsoft.SemanticKernel.Connectors.Google |
Konektor untuk model Google (misalnya, Gemini) |
Microsoft.SemanticKernel.Connectors.MistralAI |
Konektor untuk model Mistral AI |
Microsoft.SemanticKernel.Plugins.OpenApi (Eksperimental) |
Mengaktifkan pemuatan plugin dari spesifikasi OpenAPI |
Microsoft.SemanticKernel.PromptTemplates.Handlebars |
Mengaktifkan penggunaan templat Handlebars untuk perintah |
Microsoft.SemanticKernel.Yaml |
Menyediakan dukungan untuk menserialisasikan perintah menggunakan file YAML |
Microsoft.SemanticKernel.Prompty |
Menyediakan dukungan untuk menserialisasikan perintah menggunakan file Prompty |
Microsoft.SemanticKernel.Agents.Abstractions |
Menyediakan abstraksi untuk membuat agen |
Microsoft.SemanticKernel.Agents.OpenAI |
Menyediakan dukungan untuk agen Assistant API |
Ada paket lain yang tersedia (misalnya, konektor memori), tetapi masih bersifat eksperimental dan belum direkomendasikan untuk penggunaan produksi.
Untuk menginstal salah satu paket ini, Anda dapat menggunakan perintah berikut:
dotnet add package <package-name>
Paket Python
Di Python, ada satu paket yang mencakup semua yang Anda butuhkan untuk mulai menggunakan Semantic Kernel. Untuk menginstal paket, Anda dapat menggunakan perintah berikut:
pip install semantic-kernel
Pada PyPI di bawah Provides-Extra
ekstra tambahan yang dapat Anda instal juga tercantum dan ketika digunakan yang akan menginstal paket yang diperlukan untuk menggunakan SK dengan konektor atau layanan tertentu, Anda dapat menginstalnya dengan sintaks kurung siku misalnya:
pip install semantic-kernel[azure]
Ini akan menginstal Semantic Kernel, serta versi tertentu yang diuji dari: azure-ai-inference
, , azure-search-documents
, azure-core
azure-identity
, azure-cosmos
dan msgraph-sdk
(dan dependensi apa pun dari paket tersebut). Demikian pula ekstra hugging_face
akan menginstal transformers
dan sentence-transformers
.
Paket Java
Untuk Java, Semantic Kernel memiliki paket berikut; semua berada di bawah Id com.microsoft.semantic-kernel
grup , dan dapat diimpor dari maven.
<dependency>
<groupId>com.microsoft.semantic-kernel</groupId>
<artifactId>semantickernel-api</artifactId>
</dependency>
BOM disediakan yang dapat digunakan untuk menentukan versi semua paket Kernel Semantik.
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.microsoft.semantic-kernel</groupId>
<artifactId>semantickernel-bom</artifactId>
<version>${semantickernel.version}</version>
<scope>import</scope>
<type>pom</type>
</dependency>
</dependencies>
</dependencyManagement>
semantickernel-bom
β BOM proyek Maven yang dapat digunakan untuk menentukan versi semua paket Kernel Semantik.semantickernel-api
β Paket yang mendefinisikan API publik inti untuk Kernel Semantik untuk proyek Maven.semantickernel-aiservices-openai
βMenyediakan konektor yang dapat digunakan untuk berinteraksi dengan OPENAI API.
Di bawah ini adalah contoh XML POM untuk proyek sederhana yang menggunakan OpenAI.
<project>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.microsoft.semantic-kernel</groupId>
<artifactId>semantickernel-bom</artifactId>
<version>${semantickernel.version}</version>
<scope>import</scope>
<type>pom</type>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>com.microsoft.semantic-kernel</groupId>
<artifactId>semantickernel-api</artifactId>
</dependency>
<dependency>
<groupId>com.microsoft.semantic-kernel</groupId>
<artifactId>semantickernel-connectors-ai-openai</artifactId>
</dependency>
</dependencies>
</project>
Fitur yang tersedia di setiap SDK
Tabel berikut ini memperlihatkan fitur mana yang tersedia dalam setiap bahasa. Simbol π menunjukkan bahwa fitur diimplementasikan sebagian, silakan lihat kolom catatan terkait untuk detail selengkapnya. Simbol β menunjukkan bahwa fitur belum tersedia dalam bahasa tersebut; jika Anda ingin melihat fitur yang diimplementasikan dalam bahasa, pertimbangkan untuk berkontribusi pada proyek atau membuka masalah.
Kemampuan inti
Layanan | C# | Python | Java | Catatan |
---|---|---|---|---|
Permintaan | β | β | β | Untuk melihat daftar lengkap format templat dan serialisasi yang didukung, lihat tabel di bawah ini |
Fungsi dan plugin asli | β | β | β | |
Plugin OpenAPI | β | β | β | Java memiliki sampel yang menunjukkan cara memuat plugin OpenAPI |
Panggilan fungsi otomatis | β | β | β | |
Buka log Telemetri | β | π | β | |
Kait dan filter | β | β | β |
Format templat perintah
Saat menulis permintaan, Semantic Kernel menyediakan berbagai bahasa templat yang memungkinkan Anda menyematkan variabel dan memanggil fungsi. Tabel berikut ini memperlihatkan bahasa templat mana yang didukung dalam setiap bahasa.
Format | C# | Python | Java | Catatan |
---|---|---|---|---|
Bahasa templat Kernel Semantik | β | β | β | |
Setang | β | β | β | |
Liquid | β | β | β | |
Jinja2 | β | β | β |
Format serialisasi perintah
Setelah membuat perintah, Anda dapat membuat serialisasinya sehingga dapat disimpan atau dibagikan di seluruh tim. Tabel berikut ini memperlihatkan format serialisasi mana yang didukung dalam setiap bahasa.
Format | C# | Python | Java | Catatan |
---|---|---|---|---|
YAML | β | β | β | |
Prompty | β | β | β |
Modalitas Layanan AI
Layanan | C# | Python | Java | Catatan |
---|---|---|---|---|
Pembuatan Teks | β | β | β | Contoh: Text-Davinci-003 |
Penyelesaian Obrolan | β | β | β | Contoh: GPT4, Chat-GPT |
Penyematan Teks (Eksperimental) | β | β | β | Contoh: Text-Embeddings-Ada-002 |
Teks ke Gambar (Eksperimental) | β | β | β | Contoh: Dall-E |
Gambar ke Teks (Eksperimental) | β | β | β | Contoh: Pix2Struct |
Teks ke Audio (Eksperimental) | β | β | β | Contoh: Teks ke ucapan |
Audio ke Teks (Eksperimental) | β | β | β | Contoh: Berbisik |
Konektor Layanan AI
Titik akhir | C# | Python | Java | Catatan |
---|---|---|---|---|
OpenAI | β | β | β | |
Azure OpenAI | β | β | β | |
Titik akhir lain yang mendukung API OpenAI | β | β | β | Termasuk Ollama, LLM Studio, Azure Model-as-a-service, dll. |
Memeluk API Inferensi Wajah | π | β | β | Segera hadir di Python, tidak semua skenario dicakup untuk .NET |
Konektor Memori (Eksperimental)
Penting
Semua konektor memori yang ada saat ini bersifat eksperimental dan akan digantikan oleh konektor Vector Store. Ini akan memberikan lebih banyak fungsionalitas melalui lapisan abstraksi yang diperbarui.
Konektor Memori | C# | Python | Java | Catatan |
---|---|---|---|---|
Pencarian Azure AI | β | β | β | |
Chroma | β | β | β | |
DuckDB | β | β | β | |
Milvus | π | β | β | |
Pinecone | β | β | β | |
Postgres | β | β | β | |
Qdrant | β | π | β | |
Redis | β | π | β | |
Sqlite | β | β | π | |
Weaviate | β | β | β |
Konektor Penyimpanan Vektor (Eksperimental)
Penting
Semua konektor Vector Store yang ada saat ini bersifat eksperimental dan sedang menjalani pengembangan aktif untuk meningkatkan pengalaman menggunakannya. Untuk memberikan umpan balik tentang proposal terbaru, silakan merujuk ke ADR Konektor Pencarian dan Memori aktif.
Untuk daftar konektor penyimpanan vektor di luar kotak dan dukungan bahasa untuk masing-masing konektor, lihat konektor out of the box.