다음을 통해 공유


지원되는 의미 체계 커널 언어

의미 체계 커널은 다음 언어에 대한 지원을 제공할 계획입니다.

  • C#
  • Python
  • Java

커널의 전체 아키텍처는 모든 언어에서 일관되지만 각 언어에 대한 SDK는 각 언어의 일반적인 패러다임과 스타일을 따라 네이티브하고 사용하기 쉬운 느낌을 줍니다.

사용 가능한 SDK 패키지

C# 패키지

C#에는 프로젝트에 필요한 기능만 가져와야 하는 몇 가지 패키지가 있습니다. 다음 표에서는 C#에서 사용 가능한 패키지를 보여 줍니다.

패키지 이름 설명
Microsoft.SemanticKernel 시작할 모든 항목이 포함된 기본 패키지
Microsoft.SemanticKernel.Core 에 대한 구현을 제공하는 핵심 패키지 Microsoft.SemanticKernel.Abstractions
Microsoft.SemanticKernel.Abstractions 의미 체계 커널의 기본 추상화
Microsoft.SemanticKernel.Connectors.OpenAI OpenAI용 커넥터
Microsoft.SemanticKernel.Connectors.HuggingFace 포옹 얼굴 모델에 대한 커넥터
Microsoft.SemanticKernel.Connectors.Google Google 모델용 커넥터(예: Gemini)
Microsoft.SemanticKernel.Connectors.MistralAI Mistral AI 모델용 커넥터
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

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 주의
OpenAI
Azure OpenAI
OpenAI API를 대체하는 다른 엔드포인트 Ollama, LLM Studio, Azure Model-as-a-Service 등을 포함합니다.
포옹 얼굴 유추 API 🔄 Python에 곧 제공될 예정이며, 모든 시나리오가 .NET에 적용되는 것은 아닙니다.

메모리 커넥터(실험적)

Important

모든 기존 메모리 커넥터는 현재 실험적이며 사용 환경을 개선하기 위해 활성 개발을 진행하고 있습니다. 최신 제안에 대한 피드백을 제공하려면 활성 검색메모리 커넥터 ADR을 참조하세요.

메모리 커넥터 C# Python Java 주의
Azure AI 검색
Chroma
DuckDB
Milvus 🔄
Pinecone
Postgres
Qdrant 🔄
Redis 🔄
Sqlite 🔄
Weaviate