Desteklenen Anlam Çekirdeği dilleri
Semantik Çekirdek, aşağıdaki dillere destek sağlamayı planlıyor:
- C#
- Python
- Java
Çekirdeğin genel mimarisi tüm dillerde tutarlı olsa da, yerel ve kullanımı kolay hissettirmek için her dil için SDK'nın her dilde ortak paradigmalar ve stiller izlediğinden emin olduk.
Kullanılabilir SDK paketleri
C# paketleri
C# dilinde, yalnızca projeniz için ihtiyacınız olan işlevselliği içeri aktarmanız gerektiğinden emin olmanıza yardımcı olacak birkaç paket vardır. Aşağıdaki tabloda C# dilindeki kullanılabilir paketler gösterilmektedir.
Paket adı | Açıklama |
---|---|
Microsoft.SemanticKernel |
Başlamak için her şeyi içeren ana paket |
Microsoft.SemanticKernel.Core |
için uygulamalar sağlayan çekirdek paket Microsoft.SemanticKernel.Abstractions |
Microsoft.SemanticKernel.Abstractions |
Anlam Çekirdeği için temel soyutlamalar |
Microsoft.SemanticKernel.Connectors.OpenAI |
OpenAI bağlayıcısı |
Microsoft.SemanticKernel.Connectors.HuggingFace |
Yüz Tanıma modellerini kucaklama bağlayıcısı |
Microsoft.SemanticKernel.Connectors.Google |
Google modelleri için bağlayıcı (örn. İkizler) |
Microsoft.SemanticKernel.Connectors.MistralAI |
Mistral AI modelleri için bağlayıcı |
Microsoft.SemanticKernel.Plugins.OpenApi (Deneysel) |
OpenAPI belirtimlerinden eklentilerin yüklenmesini etkinleştirir |
Microsoft.SemanticKernel.PromptTemplates.Handlebars |
İstemler için Handlebars şablonlarının kullanımını etkinleştirir |
Microsoft.SemanticKernel.Yaml |
YAML dosyalarını kullanarak istemleri seri hale getirme desteği sağlar |
Microsoft.SemanticKernel.Prompty |
Prompty dosyalarını kullanarak istemleri seri hale getirme desteği sağlar |
Microsoft.SemanticKernel.Agents.Abstractions |
Aracı oluşturmaya yönelik soyutlamalar sağlar |
Microsoft.SemanticKernel.Agents.OpenAI |
Yardımcı API aracıları için destek sağlar |
Kullanılabilir başka paketler de vardır (örneğin, bellek bağlayıcıları), ancak bunlar hala deneyseldir ve henüz üretim kullanımı için önerilmez.
Bu paketlerden herhangi birini yüklemek için aşağıdaki komutu kullanabilirsiniz:
dotnet add package <package-name>
Python paketleri
Python'da Anlam Çekirdeği'ne başlamak için ihtiyacınız olan her şeyi içeren tek bir paket vardır. Paketi yüklemek için aşağıdaki komutu kullanabilirsiniz:
pip install semantic-kernel
PyPI'da Provides-Extra
yükleyebileceğiniz ek öğeler de listelenir ve SK'yi belirli bir bağlayıcı veya hizmetle kullanmak için gereken paketleri yükleyecek şekilde kullanıldığında, bunları örneğin köşeli ayraç söz dizimiyle yükleyebilirsiniz:
pip install semantic-kernel[azure]
Bu, Anlam Çekirdeği'nin yanı sıra, , azure-identity
azure-cosmos
ve msgraph-sdk
(ve bu paketlerin azure-ai-inference
azure-search-documents
azure-core
tüm bağımlılıkları) için test edilmiş belirli sürümleri yükler. Benzer şekilde, ek ve hugging_face
yüklenir transformers
sentence-transformers
.
Java paketleri
Java için Anlam Çekirdeği aşağıdaki paketlere sahiptir; tümü grup kimliği com.microsoft.semantic-kernel
altındadır ve maven'dan içeri aktarılabilir.
<dependency>
<groupId>com.microsoft.semantic-kernel</groupId>
<artifactId>semantickernel-api</artifactId>
</dependency>
Tüm AnlamSal Çekirdek paketlerinin sürümlerini tanımlamak için kullanılabilecek bir bom sağlanır.
<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
– Tüm AnlamSal Çekirdek paketlerinin sürümlerini tanımlamak için kullanılabilecek bir Maven proje ürün reçetesi.semantickernel-api
– Maven projesi için Anlam Çekirdeği için çekirdek genel API'sini tanımlayan paket.semantickernel-aiservices-openai
–OpenAI API'siyle etkileşime geçmek için kullanılabilecek bir bağlayıcı sağlar.
Aşağıda OpenAI kullanan basit bir proje için örnek bir POM XML'i verilmiştir.
<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>
Her SDK'daki kullanılabilir özellikler
Aşağıdaki tablolarda her dilde hangi özelliklerin kullanılabildiği gösterilmektedir. 🔄 Simgesi özelliğin kısmen uygulandığını gösterir. Daha fazla ayrıntı için lütfen ilişkili not sütununa bakın. ❌ Simgesi özelliğin henüz bu dilde kullanılamadığını gösterir. Bir özelliğin bir dilde uygulandığını görmek istiyorsanız, lütfen projeye katkıda bulunmayı veya bir sorun açmayı göz önünde bulundurun.
Temel özellikler
Hizmetler | C# | Python | Java | Notlar |
---|---|---|---|---|
İstemler | ✅ | ✅ | ✅ | Desteklenen şablon ve serileştirme biçimlerinin tam listesini görmek için aşağıdaki tablolara bakın |
Yerel işlevler ve eklentiler | ✅ | ✅ | ✅ | |
OpenAPI eklentileri | ✅ | ✅ | ✅ | Java'da OpenAPI eklentilerinin nasıl yüklendiğini gösteren bir örnek vardır |
Otomatik işlev çağrısı | ✅ | ✅ | ✅ | |
Telemetri günlüklerini açma | ✅ | 🔄 | ❌ | |
Kancalar ve filtreler | ✅ | ✅ | ✅ |
Şablon biçimlerini iste
Komut istemleri yazarken Anlam Çekirdeği, değişkenleri eklemenizi ve işlevleri çağırmanızı sağlayan çeşitli şablon dilleri sağlar. Aşağıdaki tabloda, her dilde hangi şablon dillerinin desteklendiği gösterilmektedir.
Biçimler | C# | Python | Java | Notlar |
---|---|---|---|---|
Semantik Çekirdek şablon dili | ✅ | ✅ | ✅ | |
Gidonlar | ✅ | ✅ | ✅ | |
Liquid | ✅ | ❌ | ❌ | |
Jinja2 | ❌ | ✅ | ❌ |
İstem serileştirme biçimleri
İstemi oluşturduktan sonra, ekipler arasında depolanabilmesi veya paylaşılabilmesi için seri hale getirebilirsiniz. Aşağıdaki tabloda her dilde hangi serileştirme biçimlerinin desteklendiği gösterilmektedir.
Biçimler | C# | Python | Java | Notlar |
---|---|---|---|---|
YAML | ✅ | ✅ | ✅ | |
İstem | ❌ | ✅ | ❌ |
AI Hizmetleri Modaliteleri
Hizmetler | C# | Python | Java | Notlar |
---|---|---|---|---|
Metin Oluşturma | ✅ | ✅ | ✅ | Örnek: Text-Davinci-003 |
Sohbet Tamamlama | ✅ | ✅ | ✅ | Örnek: GPT4, Chat-GPT |
Metin Ekleme (Deneysel) | ✅ | ✅ | ✅ | Örnek: Text-Embeddings-Ada-002 |
Metinden Görüntüye (Deneysel) | ✅ | ✅ | ❌ | Örnek: Dall-E |
Görüntüden Metne (Deneysel) | ✅ | ✅ | ❌ | Örnek: Pix2 Yapısı |
Metinden Sese (Deneysel) | ✅ | ❌ | ❌ | Örnek: Metin okuma |
Ses-Metin (Deneysel) | ✅ | ❌ | ❌ | Örnek: Fısıltı |
Yapay Zeka Hizmeti Bağlayıcıları
Uç Noktalar | C# | Python | Java | Notlar |
---|---|---|---|---|
OpenAI | ✅ | ✅ | ✅ | |
Azure OpenAI | ✅ | ✅ | ✅ | |
OpenAI API'lerini destekleyen diğer uç noktalar | ✅ | ✅ | ✅ | Ollama, LLM Studio, Hizmet olarak Azure Modeli vb. içerir. |
Yüz Çıkarımı API'sinde Sarılma | 🔄 | ❌ | ❌ | Python'a çok yakında geliyor, .NET için tüm senaryolar ele alınmamıştır |
Bellek Bağlayıcıları (Deneysel)
Önemli
Mevcut tüm bellek bağlayıcıları şu anda deneyseldir ve Vektör Deposu bağlayıcılarıyla değiştirilecektir. Bunlar, güncelleştirilmiş bir soyutlama katmanı aracılığıyla daha fazla işlevsellik sağlar.
Bellek Bağlayıcıları | C# | Python | Java | Notlar |
---|---|---|---|---|
Azure Yapay Zeka Arama | ✅ | ✅ | ✅ | |
Chroma | ✅ | ✅ | ❌ | |
DuckDB | ✅ | ❌ | ❌ | |
Milvus | 🔄 | ✅ | ❌ | |
Pinecone | ✅ | ✅ | ❌ | |
Postgres | ✅ | ✅ | ❌ | |
Qdrant | ✅ | 🔄 | ❌ | |
Redis | ✅ | 🔄 | ❌ | |
Sqlite | ✅ | ❌ | 🔄 | |
Ağırlaştır | ✅ | ✅ | ❌ |
Vektör Deposu Bağlayıcıları (Deneysel)
Önemli
Mevcut Vektör Deposu bağlayıcılarının tümü şu anda deneyseldir ve bunları kullanma deneyimini geliştirmek için etkin geliştirme aşamasındadır. En son teklif hakkında geri bildirim sağlamak için lütfen etkin Arama ve Bellek Bağlayıcısı ADR'lerine bakın.
Hazır vektör deposu bağlayıcılarının listesi ve her biri için dil desteği için hazır bağlayıcılara bakın.