Prise en main de Phi Silicon dans le Kit de développement logiciel (SDK) d’application Windows
Important
Disponible dans la dernière version de la chaîne expérimentale du SDK d’applications Windows.
Le canal expérimental du Kit de développement logiciel (SDK) d’application Windows inclut des API et des fonctionnalités au début du développement. Toutes les API du canal expérimental font l’objet de révisions approfondies et de changements cassants et peuvent être supprimées des versions ultérieures à tout moment. Les fonctionnalités expérimentales ne sont pas prises en charge pour une utilisation dans les environnements de production et les applications qui les utilisent ne peuvent pas être publiées dans le Microsoft Store.
- Phi Silicon n’est pas disponible en Chine.
- Les applications non empaquetées ne sont pas prises en charge.
Phi Silica est un modèle de langage local que vous pouvez intégrer à vos applications Windows à l’aide du Windows App SDK .
Comme le modèle de langage local le plus puissant de Microsoft, Phi Silicon est optimisé pour optimiser l’efficacité et les performances sur les pc Windows Copilot+ tout en offrant une grande partie des fonctionnalités trouvées dans les modèles de langage volumineux (LLMs).
Ce niveau d’optimisation est exclusif au modèle dans le Kit de développement logiciel (SDK) de l’application Windows et n’est pas disponible dans d’autres versions de Phi.
Pour les détails de l'API , consultez la référence de l'API pour Phi Silica dans le Kit de développement logiciel d'application Windows.
Pour plus de détails sur la modération du contenu, voir Sécurité du contenu avec les API d’IA générative.
Conseil
Fournissez des commentaires sur ces API et leurs fonctionnalités en créant un nouveau sujet dans le dépôt GitHub du Kit de développement logiciel (SDK) d’application Windows (incluez Phi Silica dans le titre) ou en répondant à un sujet existant.
Prérequis
- Un PC CoPilot+ contenant un processeur Qualcomm Snapdragon® X Elite.
- Arm64EC (compatible avec l’émulation) n’est actuellement pas pris en charge.
- Windows 11 Insider Preview Build 26120.3073 (Canaux dev et bêta) ou version ultérieure doivent être installés sur votre appareil.
Utiliser le Kit de développement logiciel (SDK) d’application Windows pour intégrer Phi Silicon à votre application Windows
Avec un modèle de langage Phi Silica local et le SDK d’application Windows, vous pouvez générer des réponses textuelles aux invites utilisateur.
Générer une réponse complète
Cet exemple montre comment générer une réponse à une invite Q&R dans laquelle la réponse complète est générée avant le retour du résultat.
Vérifiez que le modèle de langage est disponible en appelant la méthode
IsAvailable
et en attendant que la méthodeMakeAvailableAsync
retourne correctement.Une fois le modèle de langage disponible, créez un objet
LanguageModel
pour le référencer.Soumettez une chaîne de caractères au modèle à l’aide de la méthode
GenerateResponseAsync
, qui retourne le résultat complet.
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 réponse générée par cet exemple est la suivante :
The molecular formula for glucose is C6H12O6.
Générer une réponse complète
Notre API a intégré la modération du contenu qui est personnalisable. Cet exemple montre comment spécifier vos propres seuils pour la modération de contenu interne. En savoir plus sur la modération de contenu avec Windows Copilot Runtime.
- Créez un objet
LanguageModel
pour référencer le modèle de langage local. *Une vérification a déjà été effectuée pour s’assurer que le modèle de langage Phi Silicon est disponible sur l’appareil de l’utilisateur dans l’extrait de code précédent. - Créez un objet
ContentFilterOptions
et spécifiez vos valeurs préférées. - Soumettez une requête sous forme de chaîne au modèle à l’aide de la méthode
GenerateResponseAsync
avecContentFilterOptions
comme un des paramètres.
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;
Générer un flux de réponses partielles
Cet exemple montre comment générer une réponse à une invite Q&R où la réponse est retournée en tant que flux de résultats partiels.
Créez un objet
LanguageModel
pour référencer le modèle de langage local. *Une vérification a déjà été effectuée pour s’assurer que le modèle de langage Phi Silicon est disponible sur l’appareil de l’utilisateur dans l’extrait de code précédent.Récupérer de manière asynchrone le
LanguageModelResponse
dans un appel àGenerateResponseWithProgressAsync
. Écrivez-le dans la console à mesure que la réponse est générée.
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;
Appliquer des formats de texte prédéfinis pour des réponses plus cohérentes dans votre application
Phi Silicon inclut la possibilité de prédéfinir des formats de réponse de texte à utiliser dans votre application. La définition préalable d’un format de texte peut fournir des résultats de réponse plus cohérents avec les options suivantes :
- Du texte au tableau : Convertir la réponse à la requête en un tableau.
- Résumer : Renvoie un résumé basé sur le texte de la requête.
- Réécrire : Reformulez le texte de la requête pour le rendre plus clair et exprimer la réponse d’une manière plus facile à comprendre.
Créez un objet
LanguageModel
pour référencer le modèle de langage local. *Une vérification a déjà été effectuée pour s’assurer que le modèle de langage Phi Silicon est disponible sur l’appareil de l’utilisateur dans l’extrait de code précédent.Créez un objet
LanguageModelOptions
et spécifiez le format de texte prédéfini à utiliser en affectant une énumérationLanguageModelSkill
au champ Compétence de l’objetLanguageModelOptions
. Les valeurs suivantes sont disponibles pour l’énumérationLanguageModelSkill
.Énumération Description LanguageModelSkill.General
Valeur par défaut, aucune mise en forme prédéfinie appliquée. LanguageModelSkill.TextToTable
Convertir le texte de la requête en tableau, le cas échéant. LanguageModelSkill.Summarize
Renvoie un résumé basé sur le texte de la requête. LanguageModelSkill.Rewrite
Réécrivez la réponse au texte de la requête pour en améliorer la clarté et la compréhension. Ensuite, nous récupérons de façon asynchrone le LanguageModelResponse en communication avec GenerateResponseWithProgressAsync et l’écrivons dans la console à mesure que la réponse est générée.
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 fournit aux développeurs un modèle puissant et fiable pour créer des applications avec des expériences d'IA sûres et sécurisées. Les étapes suivantes ont été prises pour garantir la confiance, la sécurité et la construction responsable de Phi Silicon. Nous vous recommandons de consulter les meilleures pratiques décrites dans développement d’IA responsable sur Windows lors de l’implémentation de fonctionnalités IA dans votre application.
- Test et évaluation approfondis de la qualité du modèle afin d'identifier et d'atténuer les risques potentiels.
- Déploiement incrémentiel des versions expérimentales de Phi Silica. Après la version expérimentale finale de Phi Silica, le déploiement s'étendra aux applications signées afin de garantir que les analyses de logiciels malveillants ont été appliquées aux applications dotées de capacités de modélisation locales.
- Phi Silicon fournit un modèle IA localisé qui inclut une API de modération de contenu texte. Cette API identifie et filtre du contenu potentiellement dangereux dans la sortie générée par l’entrée et l’IA. Le modèle de modération de contenu texte local est basé sur le modèle Azure AI Content Safety pour la modération du contenu et fournit des performances similaires. Consultez modération du contenu texte avec Windows Copilot Runtime pour obtenir une description des options de filtre de niveau de gravité et un exemple de code illustrant comment implémenter ces options.
Important
Aucun système de sécurité du contenu n’est infaillible et des erreurs occasionnelles peuvent se produire. Nous vous recommandons donc d’intégrer des outils et pratiques supplémentaires d’IA responsable (RAI). Pour plus d’informations, consultez Développement d’INTELLIGENCE artificielle responsable sur Windows.
Contenu connexe
- Modération du contenu avec Windows Copilot Runtime
- Accéder aux fichiers et dossiers avec le SDK d’application Windows et les API WinRT
- Développement d'applications et de fonctionnalités d'intelligence artificielle générative responsable sur Windows
- Référence d’API pour les API Phi Silica dans le SDK d’application Windows
- Kit de développement logiciel (SDK) pour application Windows
- Notes de la dernière version pour le SDK d'application Windows