의미 체계 커널은 다음 언어에 대한 지원을 제공할 계획입니다.
- C#
- Python
- Java
커널의 전체 아키텍처는 모든 언어에서 일관되지만 각 언어에 대한 SDK는 각 언어의 일반적인 패러다임과 스타일을 따라 네이티브하고 사용하기 쉬운 느낌을 줍니다.
C# 패키지
C#에는 프로젝트에 필요한 기능만 가져와야 하는 몇 가지 패키지가 있습니다. 다음 표에서는 C#에서 사용 가능한 패키지를 보여 줍니다.
| 패키지 이름 | 설명 |
|---|---|
Microsoft.SemanticKernel |
시작할 모든 항목이 포함된 기본 패키지 |
Microsoft.SemanticKernel.Core |
에 대한 구현을 제공하는 핵심 패키지 Microsoft.SemanticKernel.Abstractions |
Microsoft.SemanticKernel.Abstractions |
의미 체계 커널의 기본 추상화 |
Microsoft.SemanticKernel.Connectors.Amazon |
Amazon AI용 AI 커넥터 |
Microsoft.SemanticKernel.Connectors.AzureAIInference |
Azure AI 유추용 AI 커넥터 |
Microsoft.SemanticKernel.Connectors.AzureOpenAI |
Azure OpenAI용 AI 커넥터 |
Microsoft.SemanticKernel.Connectors.Google |
Google 모델용 AI 커넥터(예: Gemini) |
Microsoft.SemanticKernel.Connectors.HuggingFace |
포옹 얼굴 모델을 위한 AI 커넥터 |
Microsoft.SemanticKernel.Connectors.MistralAI |
Mistral AI 모델용 AI 커넥터 |
Microsoft.SemanticKernel.Connectors.Ollama |
Ollama용 AI 커넥터 |
Microsoft.SemanticKernel.Connectors.Onnx |
Onnx용 AI 커넥터 |
Microsoft.SemanticKernel.Connectors.OpenAI |
OpenAI용 AI 커넥터 |
Microsoft.SemanticKernel.Connectors.AzureAISearch |
Azure AI Search용 벡터 저장소 커넥터 |
Microsoft.SemanticKernel.Connectors.CosmosMongoDB |
Azure CosmosDB MongoDB용 벡터 저장소 커넥터 |
Microsoft.SemanticKernel.Connectors.CosmosNoSql |
Azure CosmosDB NoSQL용 벡터 저장소 커넥터 |
Microsoft.SemanticKernel.Connectors.MongoDB |
MongoDB용 벡터 저장소 커넥터 |
Microsoft.SemanticKernel.Connectors.Pinecone |
Pinecone용 벡터 저장소 커넥터 |
Microsoft.SemanticKernel.Connectors.Qdrant |
Qdrant용 벡터 저장소 커넥터 |
Microsoft.SemanticKernel.Connectors.Redis |
Redis용 벡터 저장소 커넥터 |
Microsoft.SemanticKernel.Connectors.SqliteVec |
Sqlite용 벡터 저장소 커넥터 |
Microsoft.SemanticKernel.Connectors.Weaviate |
Weaviate용 벡터 저장소 커넥터 |
Microsoft.SemanticKernel.Plugins.OpenApi (실험적) |
OpenAPI 사양에서 플러그 인 로드 사용 |
Microsoft.SemanticKernel.PromptTemplates.Handlebars |
프롬프트에 핸들바 템플릿을 사용할 수 있습니다. |
Microsoft.SemanticKernel.Yaml |
YAML 파일을 사용하여 프롬프트 직렬화에 대한 지원을 제공합니다. |
Microsoft.SemanticKernel.Prompty |
프롬프트 파일을 사용하여 프롬프트 직렬화에 대한 지원을 제공합니다. |
Microsoft.SemanticKernel.Agents.Abstractions |
에이전트를 만들기 위한 추상화 제공 |
Microsoft.SemanticKernel.Agents.OpenAI |
Assistant API 에이전트에 대한 지원 제공 |
이러한 패키지를 설치하려면 다음 명령을 사용할 수 있습니다.
dotnet add package <package-name>
Python 패키지
Python에는 의미 체계 커널을 시작하는 데 필요한 모든 것을 포함하는 단일 패키지가 있습니다. 패키지를 설치하려면 다음 명령을 사용할 수 있습니다.
pip install semantic-kernel
PyPI에서 Provides-Extra 설치할 수 있는 추가 추가 항목도 나열되며, 이 패키지를 사용하면 특정 커넥터 또는 서비스에서 SK를 사용하는 데 필요한 패키지를 설치할 수 있습니다. 예를 들어 대괄호 구문이 있는 패키지를 설치할 수 있습니다.
pip install semantic-kernel[azure]
그러면 의미 체계 커널과 테스트된 특정 버전의 azure-ai-inference, azure-search-documents, azure-core및 azure-identityazure-cosmos (및 msgraph-sdk 해당 패키지의 모든 종속성)이 설치됩니다. 마찬가지로 추가 hugging_face 설치 및 transformerssentence-transformers.
Java 패키지
Java의 경우 의미 체계 커널에는 다음 패키지가 있습니다. 모두 그룹 ID com.microsoft.semantic-kernel아래에 있으며 maven에서 가져올 수 있습니다.
<dependency>
<groupId>com.microsoft.semantic-kernel</groupId>
<artifactId>semantickernel-api</artifactId>
</dependency>
모든 의미 체계 커널 패키지의 버전을 정의하는 데 사용할 수 있는 BOM이 제공됩니다.
<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– 모든 의미 체계 커널 패키지의 버전을 정의하는 데 사용할 수 있는 Maven 프로젝트 BOM입니다. -
semantickernel-api– Maven 프로젝트의 의미 체계 커널에 대한 핵심 공용 API를 정의하는 패키지입니다. -
semantickernel-aiservices-openai–OpenAI API와 상호 작용하는 데 사용할 수 있는 커넥터를 제공합니다.
다음은 OpenAI를 사용하는 간단한 프로젝트에 대한 POM XML의 예입니다.
<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>
각 SDK에서 사용 가능한 기능
다음 표에서는 각 언어에서 사용할 수 있는 기능을 보여 줍니다. 기호는 🔄 기능이 부분적으로 구현되었음을 나타냅니다. 자세한 내용은 연결된 참고 열을 참조하세요. 기호는 ❌ 해당 언어로 기능을 아직 사용할 수 없음을 나타냅니다. 언어로 구현된 기능을 보려면 프로젝트에 기여하거나 문제를 여는 것이 좋습니다.
핵심 기능
| Services | C# | Python | Java | 주의 |
|---|---|---|---|---|
| 프롬프트 | ✅ | ✅ | ✅ | 지원되는 템플릿 및 serialization 형식의 전체 목록을 보려면 아래 표를 참조하세요. |
| 네이티브 함수 및 플러그 인 | ✅ | ✅ | ✅ | |
| OpenAPI 플러그 인 | ✅ | ✅ | ✅ | Java에는 OpenAPI 플러그 인을 로드하는 방법을 보여주는 샘플이 있습니다. |
| 자동 함수 호출 | ✅ | ✅ | ✅ | |
| 원격 분석 로그 열기 | ✅ | ✅ | ❌ | |
| 후크 및 필터 | ✅ | ✅ | ✅ |
프롬프트 템플릿 형식
작성 프롬프트가 표시되면 의미 체계 커널은 변수를 포함하고 함수를 호출할 수 있는 다양한 템플릿 언어를 제공합니다. 다음 표에서는 각 언어에서 지원되는 템플릿 언어를 보여 줍니다.
| 형식 | C# | Python | Java | 주의 |
|---|---|---|---|---|
| 의미 체계 커널 템플릿 언어 | ✅ | ✅ | ✅ | |
| 핸들바 | ✅ | ✅ | ✅ | |
| Liquid | ✅ | ❌ | ❌ | |
| Jinja2 | ❌ | ✅ | ❌ |
프롬프트 serialization 형식
프롬프트를 만든 후에는 팀 간에 저장하거나 공유할 수 있도록 직렬화할 수 있습니다. 다음 표에서는 각 언어에서 지원되는 serialization 형식을 보여 줍니다.
| 형식 | C# | Python | Java | 주의 |
|---|---|---|---|---|
| YAML | ✅ | ✅ | ✅ | |
| 프롬프트 | ✅ | ❌ | ❌ |
AI 서비스 형식
| Services | C# | Python | Java | 주의 |
|---|---|---|---|---|
| 텍스트 생성 | ✅ | ✅ | ✅ | 예: Text-Davinci-003 |
| 채팅 완료 | ✅ | ✅ | ✅ | 예: GPT4, Chat-GPT |
| 텍스트 포함(실험적) | ✅ | ✅ | ✅ | 예: Text-Embeddings-Ada-002 |
| 텍스트에서 이미지로(실험적) | ✅ | ✅ | ❌ | 예: Dall-E |
| 이미지에서 텍스트로(실험적) | ✅ | ❌ | ❌ | 예: Pix2Struct |
| 텍스트에서 오디오로(실험적) | ✅ | ✅ | ❌ | 예: 텍스트 음성 변환 |
| 오디오에서 텍스트로(실험적) | ✅ | ✅ | ❌ | 예: 위스퍼 |
AI 서비스 커넥터
| 엔드포인트 | C# | Python | Java | 주의 |
|---|---|---|---|---|
| 아마존 암반 | ✅ | ✅ | ❌ | |
| 인위적 | ✅ | ✅ | ❌ | |
| Azure AI 추론 | ✅ | ✅ | ❌ | |
| Azure OpenAI | ✅ | ✅ | ✅ | |
| ✅ | ✅ | ✅ | ||
| 포옹 얼굴 유추 API | ✅ | ✅ | ❌ | |
| 미스트랄 | ✅ | ✅ | ❌ | |
| 올라마 섬 | ✅ | ✅ | ❌ | |
| ONNX | ✅ | ✅ | ❌ | |
| OpenAI | ✅ | ✅ | ✅ | |
| OpenAI API를 지원하는 다른 엔드포인트 | ✅ | ✅ | ✅ | LLM Studio 등을 포함합니다. |
벡터 저장소 커넥터(실험적)
경고
시맨틱 커널 벡터 스토어 기능은 미리 보기 상태이며, 릴리스 전에 제한된 상황에서 중대한 변경 사항이 필요한 개선이 있을 수 있습니다.
기본 벡터 저장소 커넥터 목록 및 각 커넥터에 대한 언어 지원은 기본 제공 커넥터를 참조하세요.
메모리 저장소 커넥터(레거시)
Important
메모리 저장소 커넥터는 레거시이며 벡터 저장소 커넥터로 대체되었습니다. 자세한 내용은 레거시 메모리 저장소를 참조하세요.
| 메모리 커넥터 | C# | Python | Java | 주의 |
|---|---|---|---|---|
| Azure AI 검색 | ✅ | ✅ | ✅ | |
| Chroma | ✅ | ✅ | ❌ | |
| DuckDB | ✅ | ❌ | ❌ | |
| Milvus | ✅ | ✅ | ❌ | |
| Pinecone | ✅ | ✅ | ❌ | |
| Postgres | ✅ | ✅ | ❌ | |
| Qdrant | ✅ | ✅ | ❌ | |
| Redis | ✅ | ✅ | ❌ | |
| Sqlite | ✅ | ❌ | 🔄 | |
| Weaviate | ✅ | ✅ | ❌ |