Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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-identity
y azure-cosmos
msgraph-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-kernel
del 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 | ✅ | ✅ | ✅ | |
✅ | ✅ | ✅ | ||
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 | ✅ | ✅ | ❌ |