Compartir a través de


Lenguajes semánticos de kernel admitidos

Los planes de kernel semántico para proporcionar compatibilidad con los siguientes idiomas:

  • C#
  • Python
  • Java

Aunque la arquitectura general del kernel es coherente en todos los lenguajes, nos aseguramos de que el SDK de cada lenguaje sigue los paradigmas y estilos comunes de cada idioma para que se sienta nativo y fácil de usar.

Paquetes de C#

En C#, hay varios paquetes que le ayudarán a asegurarse de que solo necesita importar la funcionalidad que necesita para el proyecto. En la tabla siguiente se muestran los paquetes disponibles en C#.

Nombre del paquete Descripción
Microsoft.SemanticKernel El paquete principal que incluye todo para empezar
Microsoft.SemanticKernel.Core El paquete principal que proporciona implementaciones para Microsoft.SemanticKernel.Abstractions
Microsoft.SemanticKernel.Abstractions Abstracciones base para kernel semántico
Microsoft.SemanticKernel.Connectors.Amazon Conector de IA para Amazon AI
Microsoft.SemanticKernel.Connectors.AzureAIInference Conector de IA para la inferencia de Azure AI
Microsoft.SemanticKernel.Connectors.AzureOpenAI Conector de IA para Azure OpenAI
Microsoft.SemanticKernel.Connectors.Google El conector de IA para los modelos de Google (por ejemplo, Gemini)
Microsoft.SemanticKernel.Connectors.HuggingFace El conector de IA para los modelos de Hugging Face
Microsoft.SemanticKernel.Connectors.MistralAI Conector de IA para modelos de IA mistrales
Microsoft.SemanticKernel.Connectors.Ollama Conector de IA para Ollama
Microsoft.SemanticKernel.Connectors.Onnx Conector de IA para Onnx
Microsoft.SemanticKernel.Connectors.OpenAI Conector de IA para OpenAI
Microsoft.SemanticKernel.Connectors.AzureAISearch Conector de almacén de vectores para AzureAISearch
Microsoft.SemanticKernel.Connectors.CosmosMongoDB Conector de almacén de vectores para AzureCosmosDBMongoDB
Microsoft.SemanticKernel.Connectors.CosmosNoSql Conector de almacén de vectores para AzureAISearch
Microsoft.SemanticKernel.Connectors.MongoDB Conector de almacén de vectores para MongoDB
Microsoft.SemanticKernel.Connectors.Pinecone Conector de almacén de vectores para Pinecone
Microsoft.SemanticKernel.Connectors.Qdrant Conector de almacén de vectores para Qdrant
Microsoft.SemanticKernel.Connectors.Redis Conector de almacén de vectores para Redis
Microsoft.SemanticKernel.Connectors.SqliteVec Conector de almacén de vectores para Sqlite
Microsoft.SemanticKernel.Connectors.Weaviate Conector de almacén de vectores para Weaviate
Microsoft.SemanticKernel.Plugins.OpenApi (Experimental) Habilita la carga de complementos desde especificaciones de OpenAPI
Microsoft.SemanticKernel.PromptTemplates.Handlebars Habilita el uso de plantillas de handlebars para solicitudes
Microsoft.SemanticKernel.Yaml Proporciona compatibilidad con la serialización de mensajes mediante archivos YAML.
Microsoft.SemanticKernel.Prompty Proporciona compatibilidad con la serialización de mensajes mediante archivos prompty.
Microsoft.SemanticKernel.Agents.Abstractions Proporciona abstracciones para crear agentes
Microsoft.SemanticKernel.Agents.OpenAI Proporciona compatibilidad con agentes de API de Assistant

Para instalar cualquiera de estos paquetes, puede usar el siguiente comando:

dotnet add package <package-name>

Paquetes de Python

En Python, hay un único paquete que incluye todo lo que necesita para empezar a trabajar con kernel semántico. Para instalar el paquete, puede usar el siguiente comando:

pip install semantic-kernel

En PyPI en Provides-Extra los extras adicionales que puede instalar también se muestran y cuando se usan que instalarán los paquetes necesarios para usar SK con ese conector o servicio específicos, puede instalarlos con la sintaxis de corchetes por ejemplo:

pip install semantic-kernel[azure]

Esto instalará kernel semántico, así como versiones probadas específicas de: azure-ai-inference, azure-search-documents, azure-core, azure-identityy azure-cosmosmsgraph-sdk (y cualquier dependencia de esos paquetes). Del mismo modo, el adicional hugging_face instalará transformers y sentence-transformers.

Paquetes de Java

Para Java, el kernel semántico tiene los siguientes paquetes; todos están en el identificador com.microsoft.semantic-kerneldel grupo y se pueden importar desde maven.

    <dependency>
        <groupId>com.microsoft.semantic-kernel</groupId>
        <artifactId>semantickernel-api</artifactId>
    </dependency>

Se proporciona una lista de materiales que se puede usar para definir las versiones de todos los paquetes de kernel semántico.

    <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 : una lista de materiales de proyecto de Maven que se puede usar para definir las versiones de todos los paquetes de kernel semántico.
  • semantickernel-api : paquete que define la API pública principal para el kernel semántico para un proyecto de Maven.
  • semantickernel-aiservices-openai –Proporciona un conector que se puede usar para interactuar con la API de OpenAI.

A continuación se muestra un ejemplo de XML POM para un proyecto sencillo que usa 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>

Características disponibles en cada SDK

En las tablas siguientes se muestran las características disponibles en cada idioma. El 🔄 símbolo indica que la característica se implementa parcialmente, consulte la columna de nota asociada para obtener más detalles. El ❌ símbolo indica que la característica aún no está disponible en ese idioma; si desea ver una característica implementada en un idioma, considere la posibilidad de contribuir al proyecto o abrir un problema.

Funcionalidades principales

Servicios C# Python Java Notas
Mensajes Para ver la lista completa de formatos de serialización y plantilla admitidos, consulte las tablas siguientes.
Funciones y complementos nativos
Complementos de OpenAPI Java tiene un ejemplo que muestra cómo cargar complementos de OpenAPI
Llamada automática a funciones
Apertura de registros de telemetría
Enlaces y filtros

Formatos de plantilla de solicitud

Al crear mensajes, kernel semántico proporciona una variedad de lenguajes de plantilla que permiten insertar variables e invocar funciones. En la tabla siguiente se muestran los idiomas de plantilla que se admiten en cada idioma.

Formatos C# Python Java Notas
Lenguaje de plantilla de kernel semántico
Manillares
Liquid
Jinja2

Formatos de serialización de mensajes

Una vez que haya creado un mensaje, puede serializarlo para que se pueda almacenar o compartir entre equipos. En la tabla siguiente se muestran los formatos de serialización que se admiten en cada idioma.

Formatos C# Python Java Notas
YAML
Prompty

Modalidades de los servicios de IA

Servicios C# Python Java Notas
Generación de texto Ejemplo: Text-Davinci-003
Finalización del chat Ejemplo: GPT4, Chat-GPT
Incrustaciones de texto (experimental) Ejemplo: Inserción de texto-Ada-002
Texto a imagen (experimental) Ejemplo: Dall-E
Imagen a texto (experimental) Ejemplo: Pix2Struct
Texto a audio (experimental) Ejemplo: Texto a voz
Audio a texto (experimental) Ejemplo: Susurro

Conectores de servicio de IA

Puntos de conexión C# Python Java Notas
Amazon Bedrock
Anthropic
Inferencia de Azure AI
Azure OpenAI
Google
Hugging Face Inference API
Mistral
Ollama
ONNX
OpenAI
Otros puntos de conexión que admiten api de OpenAI Incluye LLM Studio, etc.

Conectores de almacén de vectores (experimental)

Advertencia

La funcionalidad del Semantic Kernel Vector Store está en fase de prueba, y las mejoras que requieran cambios importantes pueden ocurrir en circunstancias limitadas antes de su lanzamiento.

Para obtener la lista de conectores de almacén de vectores de fábrica y la compatibilidad de idioma para cada uno, consulte conectores listas para usar.

Conectores de almacenamiento de memoria (heredado)

Importante

Los conectores de almacenamiento de memoria son heredados y se han reemplazado por conectores de almacén de vectores. Para obtener más información, vea Almacenes de memoria heredados.

Conectores de memoria C# Python Java Notas
Azure AI Search
Chroma
DuckDB
Milvus
Pinecone
Postgres
Qdrant
Redis
Sqlite 🔄
Weaviate