Bagikan melalui


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 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.Amazon Konektor AI untuk Amazon AI
Microsoft.SemanticKernel.Connectors.AzureAIInference Konektor AI untuk Inferensi Azure AI
Microsoft.SemanticKernel.Connectors.AzureOpenAI Konektor AI untuk Azure OpenAI
Microsoft.SemanticKernel.Connectors.Google Konektor AI untuk model Google (misalnya, Gemini)
Microsoft.SemanticKernel.Connectors.HuggingFace Konektor AI untuk memeluk model Wajah
Microsoft.SemanticKernel.Connectors.MistralAI Konektor AI untuk model Mistral AI
Microsoft.SemanticKernel.Connectors.Ollama Konektor AI untuk Ollama
Microsoft.SemanticKernel.Connectors.Onnx Konektor AI untuk Onnx
Microsoft.SemanticKernel.Connectors.OpenAI Konektor AI untuk OpenAI
Microsoft.SemanticKernel.Connectors.AzureAISearch Konektor penyimpanan vektor untuk Azure AI Search
Microsoft.SemanticKernel.Connectors.CosmosMongoDB Konektor penyimpanan vektor untuk Azure CosmosDB MongoDB
Microsoft.SemanticKernel.Connectors.CosmosNoSql Konektor penyimpanan vektor untuk Azure CosmosDB NoSQL
Microsoft.SemanticKernel.Connectors.MongoDB Konektor penyimpanan vektor untuk MongoDB
Microsoft.SemanticKernel.Connectors.Pinecone Konektor penyimpanan vektor untuk Pinecone
Microsoft.SemanticKernel.Connectors.Qdrant Konektor penyimpanan vektor untuk Qdrant
Microsoft.SemanticKernel.Connectors.Redis Konektor penyimpanan vektor untuk Redis
Microsoft.SemanticKernel.Connectors.SqliteVec Konektor penyimpanan vektor untuk Sqlite
Microsoft.SemanticKernel.Connectors.Weaviate Konektor penyimpanan vektor untuk Weaviate
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

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-coreazure-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-kernelgrup , 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
Amazon Bedrock βœ… βœ… ❌
Antropik βœ… βœ… ❌
Inferensi dari Azure AI βœ… βœ… ❌
Azure OpenAI βœ… βœ… βœ…
Google βœ… βœ… βœ…
Memeluk API Inferensi Wajah βœ… βœ… ❌
Mistral βœ… βœ… ❌
Ollama βœ… βœ… ❌
ONNX βœ… βœ… ❌
OpenAI βœ… βœ… βœ…
Titik akhir lain yang mendukung API OpenAI βœ… βœ… βœ… Termasuk LLM Studio, dll.

Konektor Penyimpanan Vektor (Eksperimental)

Peringatan

Fungsionalitas Penyimpanan Vektor Semantic Kernel saat ini sedang dalam tahap pratinjau, dan perbaikan yang memerlukan perubahan signifikan mungkin masih terjadi dalam keadaan terbatas sebelum peluncuran resmi.

Untuk daftar konektor penyimpanan vektor di luar kotak dan dukungan bahasa untuk masing-masing konektor, lihat konektor out of the box.

Konektor Penyimpanan Memori (Warisan)

Penting

Konektor Penyimpanan Memori adalah warisan dan telah digantikan oleh konektor Vector Store. Untuk informasi selengkapnya, lihat Penyimpanan Memori Warisan.

Konektor Memori C# Python Java Catatan
Pencarian Azure AI βœ… βœ… βœ…
Chroma βœ… βœ… ❌
DuckDB βœ… ❌ ❌
Milvus βœ… βœ… ❌
Pinecone βœ… βœ… ❌
Postgres βœ… βœ… ❌
Qdrant βœ… βœ… ❌
Redis βœ… βœ… ❌
Sqlite βœ… ❌ πŸ”„
Weaviate βœ… βœ… ❌