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 Azure AI Search |
Microsoft.SemanticKernel.Connectors.CosmosMongoDB |
Conector de almacén de vectores para MongoDB de Azure CosmosDB |
Microsoft.SemanticKernel.Connectors.CosmosNoSql |
Conector de almacén de vectores para NoSQL de Azure CosmosDB |
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 | ✅ | ✅ | ✅ | |
| ✅ | ✅ | ✅ | ||
| 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 | ✅ | ✅ | ❌ |