Introducción a PhiLice en el SDK de Aplicaciones para Windows
Importante
Disponible en la última versión del canal experimental del Windows App SDK.
El canal experimental del SDK de Aplicaciones para Windows incluye API y características que se encuentran en las primeras fases del desarrollo. Todas las API del canal experimental están sujetas a revisiones exhaustivas y cambios importantes y se pueden eliminar de versiones posteriores en cualquier momento. Las características experimentales no se admiten para su uso en entornos de producción y las aplicaciones que las usan no se pueden publicar en Microsoft Store.
- Phi Silica no está disponible en China.
- No se admiten aplicaciones sin empaquetar.
Phi Silica es un modelo de lenguaje local que puede integrar en sus aplicaciones Windows utilizando el Windows App SDK.
Como modelo de lenguaje local con ajuste de NPU más potente de Microsoft, PhiLice está optimizado para mejorar la eficiencia y el rendimiento en los dispositivos con Windows Copilot+, a la vez que ofrece muchas de las funcionalidades que se encuentran en modelos de lenguaje grande (LLM).
Este nivel de optimización es exclusivo del modelo dentro de la SDK de Aplicaciones para Windows y no está disponible en otras versiones de Phi.
Para detalles de la API, consulte Referencia de la API para Phi Silica en el SDK de Aplicaciones para Windows Windows.
Para obtener detalles sobre la moderación de contenido, consulte la seguridad de contenido con APIs de IA generativa.
Sugerencia
Proporcione comentarios sobre estas API y su funcionalidad creando una nueva incidencia en el repositorio de GitHub del SDK de Aplicaciones para Windows (incluya Phi Silica en el título) o respondiendo a una incidencia existente.
Requisitos previos
- Un PC CoPilot+ que contiene un procesador Qualcomm Snapdragon® X.
- Arm64EC (compatible con emulación) no se admite actualmente.
- Windows 11 Insider Preview Build 26120.3073 (canales de desarrollo y beta) o posterior debe estar instalado en el dispositivo.
Usar el SDK de Aplicaciones para Windows para integrar PhiLice en la aplicación de Windows
Con un modelo de lenguaje Phi Silica local y el SDK de Aplicaciones para Windows puede generar respuestas de texto a las solicitudes del usuario.
Generar una respuesta completa
En este ejemplo se muestra cómo generar una respuesta a una serie de preguntas y respuestas, donde se genera la respuesta completa antes de que se devuelva el resultado.
Asegúrese de que el modelo de idioma está disponible llamando al método
IsAvailable
y esperando a que el métodoMakeAvailableAsync
devuelva correctamente.Una vez que el modelo de lenguaje esté disponible, cree un objeto
LanguageModel
para referenciarlo.Envíe una solicitud de cadena al modelo utilizando el método
GenerateResponseAsync
, que devuelve el resultado completo.
using Microsoft.Windows.AI.Generative;
if (!LanguageModel.IsAvailable())
{
var op = await LanguageModel.MakeAvailableAsync();
}
using LanguageModel languageModel = await LanguageModel.CreateAsync();
string prompt = "Provide the molecular formula for glucose.";
var result = await languageModel.GenerateResponseAsync(prompt);
Console.WriteLine(result.Response);
using namespace winrt::Microsoft::Windows::AI::Generative;
if (!LanguageModel::IsAvailable())
{
auto op = LanguageModel::MakeAvailableAsync().get();
}
auto languageModel = LanguageModel::CreateAsync().get();
std::string prompt = "Provide the molecular formula for glucose.";
auto result = languageModel.GenerateResponseAsync(prompt).get();
std::cout << result.Response() << std::endl;
La respuesta que se genera en este ejemplo es:
The molecular formula for glucose is C6H12O6.
Generar una respuesta completa
Nuestra API ha incorporado la moderación de contenido que es personalizable. Este ejemplo muestra cómo especificar sus propios umbrales para la moderación de contenido interna. Más información sobre Moderación de contenido con Windows Copilot Runtime.
- Cree un objeto
LanguageModel
para hacer referencia al modelo de idioma local. *Ya se ha realizado una comprobación para asegurar que el modelo de lenguaje Phi Silica está disponible en el dispositivo del usuario en el snippet anterior. - Cree un objeto
ContentFilterOptions
y especifique sus valores preferidos. - Envíe un prompt de cadena al modelo utilizando el método
GenerateResponseAsync
con elContentFilterOptions
como uno de los parámetros.
using Microsoft.Windows.AI.Generative;
using LanguageModel languageModel = await LanguageModel.CreateAsync();
string prompt = "Provide the molecular formula for glucose.";
ContentFilterOptions filterOptions = new ContentFilterOptions();
filterOptions.PromptMinSeverityLevelToBlock.ViolentContentSeverity = SeverityLevel.Medium;
filterOptions.ResponseMinSeverityLevelToBlock.ViolentContentSeverity = SeverityLevel.Medium;
// var result = await languageModel.GenerateResponseAsync(null, prompt, filterOptions);
Console.WriteLine(result.Response);
using namespace winrt::Microsoft::Windows::AI::Generative;
auto languageModel = LanguageModel::CreateAsync().get();
std::string prompt = "Provide the molecular formula for glucose.";
ContentFilterOptions contentFilter = ContentFilterOptions();
contentFilter.PromptMinSeverityLevelToBlock().ViolentContentSeverity(SeverityLevel::Medium);
contentFilter.ResponseMinSeverityLevelToBlock().ViolentContentSeverity(SeverityLevel::Medium);
// auto result = languageModel.GenerateResponseAsync(nullptr, prompt, filterOptions).get();
std::cout << result.Response() << std::endl;
Generación de un flujo de respuestas parciales
En este ejemplo se muestra cómo generar una respuesta a una serie de preguntas y respuestas, donde se devuelve la respuesta como una secuencia de resultados parciales.
Cree un objeto
LanguageModel
para hacer referencia al modelo de idioma local. *Ya se ha realizado una comprobación para asegurar que el modelo de lenguaje Phi Silica está disponible en el dispositivo del usuario en el snippet anterior.Recuperar de forma asíncrona el
LanguageModelResponse
en una llamada aGenerateResponseWithProgressAsync
. Escríbalo en la consola a medida que se genera la respuesta.
using Microsoft.Windows.AI.Generative;
using LanguageModel languageModel = await LanguageModel.CreateAsync();
string prompt = "Provide the molecular formula for glucose.";
AsyncOperationProgressHandler<LanguageModelResponse, string>
progressHandler = (asyncInfo, delta) =>
{
Console.WriteLine($"Progress: {delta}");
Console.WriteLine($"Response so far: {asyncInfo.GetResults().Response()}");
};
var asyncOp = languageModel.GenerateResponseWithProgressAsync(prompt);
asyncOp.Progress = progressHandler;
var result = await asyncOp;
Console.WriteLine(result.Response);
using namespace winrt::Microsoft::Windows::AI::Generative;
auto languageModel = LanguageModel::CreateAsync().get();
std::string prompt = "Provide the molecular formula for glucose.";
AsyncOperationProgressHandler<LanguageModelResponse, std::string> progressHandler =
[](const IAsyncOperationWithProgress<LanguageModelResponse, std::string>& asyncInfo, const std::string& delta)
{
std::cout << "Progress: " << delta << std::endl;
std::cout << "Response so far: " << asyncInfo.GetResults().Response() << std::endl;
};
auto asyncOp = languageModel.GenerateResponseWithProgressAsync(prompt);
asyncOp.Progress(progressHandler);
auto result = asyncOp.get();
std::cout << result.Response() << std::endl;
Aplique formatos de texto predefinidos para obtener respuestas más coherentes en su aplicación
Phi Silica incluye la posibilidad de predefinir formatos de respuesta de texto para utilizarlos en su app. Predefinir un formato de texto puede proporcionar resultados de respuesta más consistentes con las siguientes opciones:
- Texto a tabla: convierte la respuesta del prompt en un formato de tabla.
- Resumir: devuelve un resumen basado en el texto de la solicitud.
- Reescritura: Reformule el texto del aviso para agregar claridad y expresar la respuesta de una forma más comprensible.
Cree un objeto
LanguageModel
para hacer referencia al modelo de idioma local. *Ya se ha realizado una comprobación para asegurar que el modelo de lenguaje Phi Silica está disponible en el dispositivo del usuario en el snippet anterior.Crear un objeto
LanguageModelOptions
y especificar el formato de texto predefinido a utilizar asignando un enumLanguageModelSkill
al campo Skill del objetoLanguageModelOptions
. Los siguientes valores están disponibles para el enumLanguageModelSkill
.Enum Descripción LanguageModelSkill.General
Valor por defecto, no se aplica ningún formato predefinido. LanguageModelSkill.TextToTable
Convierte el texto de solicitud en una tabla si corresponde. LanguageModelSkill.Summarize
Devuelve un resumen basado en el texto de la consulta. LanguageModelSkill.Rewrite
Para mejorar la claridad y la comprensión, reescriba la respuesta del mensaje de texto. A continuación, se recupera de forma asíncrona el elemento LanguageModelResponse en una llamada a GenerateResponseWithProgressAsync y se escribe en la consola a medida que se genera la respuesta.
using Microsoft.Windows.AI.Generative;
using LanguageModel languageModel = await LanguageModel.CreateAsync();
string prompt = "This is a large amount of text I want to have summarized.";
LanguageModelOptions options = new LanguageModelOptions {
Skill = LanguageModelSkill.Summarize
};
var result = await languageModel.GenerateResponseAsync(options, prompt);
Console.WriteLine(result.Response);
using namespace winrt::Microsoft::Windows::AI::Generative;
auto languageModel = LanguageModel::CreateAsync().get();
std::string prompt = "This is a large amount of text I want to have summarized.";
LanguageModelOptions options = LanguageModelOptions();
options.Skill = LanguageModelSkill.Summarize;
auto result = languageModel.GenerateResponseAsync(options, prompt).get();
std::cout << result.Response() << std::endl;
IA responsable
Phi Silica proporciona a los desarrolladores un modelo eficaz y confiable para crear aplicaciones con experiencias de inteligencia artificial seguras. Se han realizado los siguientes pasos para garantizar que Phi Silica sea confiable, seguro y construido de forma responsable. Se recomienda revisar las mejores prácticas descritas en Desarrollo de IA Generativa Responsable en Windows al implementar características de inteligencia artificial en tu aplicación.
- Pruebas exhaustivas y evaluación de la calidad del modelo para identificar y mitigar los posibles riesgos.
- Despliegue gradual de las versiones experimentales de Phi Silica. Después de la versión experimental final de Phi Silica, el lanzamiento se expandirá a las aplicaciones firmadas para asegurarse de que los exámenes de malware se han aplicado a las aplicaciones con funcionalidades del modelo local.
- Phi Silica proporciona un modelo de IA localizado que incluye una API de moderación de contenido de texto. Esta API identifica y filtra contenido potencialmente dañino tanto en la entrada como en la salida generada por la IA. El modelo local de moderación de contenido de texto se basa en el modelo de seguridad de contenido de Azure AI para la moderación de contenido y proporciona un rendimiento similar. Consulte Moderación de contenido de texto con Windows Copilot Runtime para obtener una descripción de las opciones de filtro de nivel de gravedad y un ejemplo de código que demuestra cómo implementar estas opciones.
Importante
No se puede producir ningún sistema de seguridad de contenido y se pueden producir errores ocasionales, por lo que se recomienda integrar herramientas y prácticas complementarias de INTELIGENCIA ARTIFICIAL responsable (RAI). Para obtener más información, consulte Desarrollo de IA generativa responsable en Windows.
Contenido relacionado
- Moderación de contenido con Windows Copilot Runtime
- Acceso a archivos y carpetas con SDK de Aplicaciones para Windows y API de WinRT
- Desarrollo de Aplicaciones y Características de IA Generativa Responsable en Windows
- Referencia de API para API de Phi Silica en el SDK de Aplicaciones para Windows
- SDK para aplicaciones de Windows
- Notas de la versión más reciente para el SDK de Aplicaciones para Windows