A Phi Silica használatának első lépései a Windows App SDK-ban
Fontos
Elérhető a Windows App SDK legújabb kísérleti csatornáján kiadásában.
A Windows App SDK kísérleti csatornája api-kat és funkciókat tartalmaz a fejlesztés korai szakaszában. A kísérleti csatornán található összes API-ra kiterjedt változatok és kompatibilitástörő változások vonatkoznak, és bármikor eltávolíthatók a későbbi kiadásokból. A kísérleti funkciók nem használhatók éles környezetben, és az őket használó alkalmazások nem tehetők közzé a Microsoft Store-ban.
- A Phi Silica a Kínai szárazföldön nem érhető el.
- Az önálló alkalmazások nem támogatottak.
A Phi Silica egy helyi nyelvi modell, amelyet a Windows App SDKhasználatával integrálhat a Windows-alkalmazásokba.
A Microsoft legerősebb NPU-ra hangolt helyi nyelvi modelljeként a Phi Silica a Windows Copilot+ rendszerű számítógépek hatékonyságára és teljesítményére van optimalizálva, miközben továbbra is számos funkciót kínál a nagy nyelvi modellekben (LLM-ekben).
Ez az optimalizálási szint kizárólag a Windows App SDK-ban található modellre igaz, és a Phi más verzióiban nem érhető el.
A API részleteitmegtalálhatja a Windows App SDK Phi Silica API referenciadokumentációjában.
A tartalommoderálási részletekérdekében lásd: Tartalombiztonság generatív AI API-kkal.
Borravaló
Küldjön visszajelzést ezekről az API-król és működésükről egy új probléma létrehozásával a Windows App SDK GitHub-adattárban (a címben szerepeljen Phi Silica), vagy válaszoljon egy meglévő problémára.
Előfeltételek
- Qualcomm Snapdragon® X processzort tartalmazó Copilot+ PC-.
- Az Arm64EC (Emulation Compatible) jelenleg nem támogatott.
- Windows 11 Insider Preview Build 26120.3073 -at (fejlesztői és bétacsatornák) vagy újabb verziót kell telepíteni az eszközre.
A Windows App SDK-val integrálhatja a Phi Silica-t a Windows-alkalmazásba
Egy helyi Phi Silica nyelvi modellel és a Windows App SDK-val szöveges válaszokat hozhat létre a felhasználói kérésekre.
Teljes válasz létrehozása
Ez a példa bemutatja, hogyan hozhat létre választ egy Q&A kérdésre, ahol a teljes válasz az eredmény visszaadása előtt jön létre.
A
IsAvailable
metódus meghívásával és aMakeAvailableAsync
metódus sikeres visszatérésére való várakozással győződjön meg arról, hogy a nyelvi modell elérhető.Ha a nyelvi modell elérhetővé válik, hozzon létre egy
LanguageModel
objektumot a hivatkozáshoz.Küldjön karakterláncot a modellnek a
GenerateResponseAsync
metódussal, és amely visszaadja a teljes eredményt.
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;
A példa által generált válasz a következő:
The molecular formula for glucose is C6H12O6.
Teljes válasz létrehozása
Az API beépített tartalommoderálást tartalmaz, amely testre szabható. Ez a példa bemutatja, hogyan adhatja meg saját küszöbértékeit a belső tartalommoderáláshoz. További információ a tartalommoderálásról a Windows Copilot Runtimeismertetése.
- Hozzon létre egy
LanguageModel
objektumot a helyi nyelvi modellre való hivatkozáshoz. *Már megtörtént az ellenőrzés annak ellenőrzésére, hogy a Phi Silica nyelvi modell elérhető-e a felhasználó eszközén az előző kódrészletben. - Hozzon létre egy
ContentFilterOptions
objektumot, és adja meg az előnyben részesített értékeket. - Küldjön egy karakterlánc-kérést a modellnek a
GenerateResponseAsync
módszerrel, aContentFilterOptions
paramétert használva.
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;
Részleges válaszok adatfolyamának létrehozása
Ez a példa bemutatja, hogyan hozhat létre választ egy Q&A-kérdésre, ahol a válasz részleges eredmények adatfolyamaként jelenik meg.
Hozzon létre egy
LanguageModel
objektumot a helyi nyelvi modellre való hivatkozáshoz. *Már megtörtént az ellenőrzés annak ellenőrzésére, hogy a Phi Silica nyelvi modell elérhető-e a felhasználó eszközén az előző kódrészletben.Aszinkron módon kérje le a
LanguageModelResponse
-t aGenerateResponseWithProgressAsync
hívásában. Írja be a konzolra a válasz létrehozásakor.
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;
Előre definiált szövegformátumok alkalmazása konzisztensebb válaszokhoz az alkalmazásban
A Phi Silica lehetővé teszi, hogy előre definiálja a szöveges válaszformátumokat az alkalmazásban való használatra. A szövegformátum előredefiniálása konzisztensebb válaszeredményeket biztosíthat a következő beállításokkal:
- Szöveg táblázattá: Az utasításra adott válasz átalakítása táblázat formátumba.
- összegzése: Adjon egy összegzést a megadott szöveg alapján.
- újraírása: A szöveg átírása az egyértelműség érdekében, hogy a válasz könnyebben érthető legyen.
Hozzon létre egy
LanguageModel
objektumot a helyi nyelvi modellre való hivatkozáshoz. *Már megtörtént az ellenőrzés annak ellenőrzésére, hogy a Phi Silica nyelvi modell elérhető-e a felhasználó eszközén az előző kódrészletben.Hozzon létre egy
LanguageModelOptions
objektumot, és adja meg az előre definiált szövegformátumot úgy, hogyLanguageModelSkill
enumerálást rendel aLanguageModelOptions
objektum Skill mezőjéhez. Az alábbi értékek érhetők el aLanguageModelSkill
enumeráláshoz.Enumeráció Leírás LanguageModelSkill.General
Alapértelmezett érték, nincs előre definiált formázás alkalmazva. LanguageModelSkill.TextToTable
Ha lehetséges, konvertálja a parancssori szöveget táblázattá. LanguageModelSkill.Summarize
Visszaad egy összegzést az utasítószöveg alapján. LanguageModelSkill.Rewrite
Írja át a parancssori szövegre adott választ az egyértelműség és a megértés javítása érdekében. Ezután aszinkron módon lekérjük a LanguageModelResponse a GenerateResponseWithProgressAsync hívásával, és a válasz létrehozása közben kiírjuk a konzolra.
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;
Felelős MI
A Phi Silica hatékony, megbízható modellt kínál a fejlesztőknek az alkalmazások biztonságos, biztonságos AI-élményekkel való létrehozásához. Az alábbi lépéseket követve gondoskodtunk arról, hogy a Phi Silica megbízható, biztonságos és felelősen épüljön fel. Javasoljuk, hogy a mesterséges intelligencia funkcióinak alkalmazása során tekintse át a Windows rendszerhez kapcsolódó, a Felelős Generatív AI-fejlesztés című dokumentumban leírt ajánlott eljárásokat.
- A modell minőségének alapos tesztelése és kiértékelése a lehetséges kockázatok azonosítása és csökkentése érdekében.
- A Phi Silica kísérleti kiadásainak növekményes bevezetése. Az utolsó Phi Silica kísérleti kiadást követően a bevezetés az aláírt alkalmazásokra bővül, így biztosítva, hogy a kártevővizsgálatok a helyi modell képességeivel rendelkező alkalmazásokra legyenek alkalmazva.
- A Phi Silica egy honosított AI-modellt biztosít, amely tartalmaz egy Szöveges tartalommoderálási API-t. Ez az API azonosítja és szűri a potenciálisan káros tartalmakat mind a bemeneti, mind az AI által generált kimenetben. A helyi szöveges tartalommoderálási modell az Azure AI Content Safety modellen alapul a tartalommoderáláshoz, és hasonló teljesítményt nyújt. A súlyossági szint szűrőbeállításainak leírását és a beállítások implementálását bemutató kódmintát a Szöveges tartalommoderálás a Windows Copilot Futtatókörnyezet című témakörben talál.
Fontos
A tartalombiztonsági rendszer nem tévedhetetlen, és esetenként előfordulhatnak hibák, ezért javasoljuk, hogy integrálja a kiegészítő Felelős MI (RAI) eszközöket és gyakorlatokat. További részletekért lásd: Felelős Generatív AI-fejlesztés Windowsrendszeren.
Kapcsolódó tartalom
- Tartalommoderálás a Windows Copilot Runtime-mal
- Fájlok és mappák elérése Windows App SDK-val és WinRT API-kkal
- Felelős generatív AI-alkalmazások és funkciók fejlesztése a Windows rendszeren
- API referencia a Phi Silica API-k a Windows App SDK
- Windows App SDK
- Legújabb kibocsátási megjegyzések a Windows App SDK