Megosztás a következőn keresztül:


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

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.

  1. A IsAvailable metódus meghívásával és a MakeAvailableAsync metódus sikeres visszatérésére való várakozással győződjön meg arról, hogy a nyelvi modell elérhető.

  2. Ha a nyelvi modell elérhetővé válik, hozzon létre egy LanguageModel objektumot a hivatkozáshoz.

  3. 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.

  1. 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.
  2. Hozzon létre egy ContentFilterOptions objektumot, és adja meg az előnyben részesített értékeket.
  3. Küldjön egy karakterlánc-kérést a modellnek a GenerateResponseAsync módszerrel, a ContentFilterOptions 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.

  1. 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.

  2. Aszinkron módon kérje le a LanguageModelResponse-t a GenerateResponseWithProgressAsynchí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.
  1. 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.

  2. Hozzon létre egy LanguageModelOptions objektumot, és adja meg az előre definiált szövegformátumot úgy, hogy LanguageModelSkill enumerálást rendel a LanguageModelOptions objektum Skill mezőjéhez. Az alábbi értékek érhetők el a LanguageModelSkill 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.
  3. 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.