Szöveg összegzése AI-csevegőalkalmazással a .NET-tel
Ismerkedés az AI-vel egy egyszerű .NET 8.0-s konzolos csevegőalkalmazás létrehozásával, amely összegzi a szöveget. Az alkalmazás helyileg fut, és az OpenAI-modellt gpt-3.5-turbo
használja. Az alábbi lépéseket követve hozzáférhet az OpenAI-hoz, és megtudhatja, hogyan használhatja a Szemantic Kernelt.
Előfeltételek
- .NET 8.0 SDK – Telepítse a .NET 8.0 SDK-t.
- Egy API-kulcs az OpenAI-ból , hogy futtathassa ezt a mintát.
- Windows rendszeren a PowerShellre
v7+
van szükség. A verzió ellenőrzéséhez futtassapwsh
a terminálban. Az aktuális verziót kell visszaadnia. Ha hibát ad vissza, hajtsa végre a következő parancsot:dotnet tool update --global PowerShell
.
Ismerkedés az AI-vel egy egyszerű .NET 8.0-s konzolos csevegőalkalmazás létrehozásával, amely összegzi a szöveget. Az alkalmazás helyileg fut, és csatlakozik az Azure OpenAI-ban üzembe helyezett OpenAI-modellhez gpt-35-turbo
. Kövesse ezeket a lépéseket az Azure OpenAI szolgáltatás kiépítéséhez, és ismerje meg, hogyan használhatja a Szemantic Kernelt.
Előfeltételek
- .NET 8 SDK – Telepítse a .NET 8 SDK-t.
- Azure-előfizetés – Hozzon létre egyet ingyenesen.
- Azure Developer CLI – Az Azure Developer CLI telepítése vagy frissítése.
- Hozzáférés az Azure OpenAI szolgáltatáshoz.
- Windows rendszeren a PowerShellre
v7+
van szükség. A verzió ellenőrzéséhez futtassapwsh
a terminálban. Az aktuális verziót kell visszaadnia. Ha hibát ad vissza, hajtsa végre a következő parancsot:dotnet tool update --global PowerShell
.
A mintaprojekt lekérése
Klónozza a GitHub-adattárat, amely az összes rövid útmutatóhoz tartalmazza a mintaalkalmazásokat:
git clone https://github.com/dotnet/ai-samples.git
Az Azure OpenAI szolgáltatás létrehozása
A GitHub-mintaadattár Azure Developer CLI-sablonként vanazd
felépítve, amely azd
az Azure OpenAI szolgáltatás és modell kiépítésére használható.
Egy terminálból vagy parancssorból keresse meg a mintaadattár src\quickstarts\azure-openai könyvtárát.
Futtassa a
azd up
parancsot az Azure OpenAI-erőforrások kiépítéséhez. Az Azure OpenAI szolgáltatás létrehozása és a modell üzembe helyezése több percet is igénybe vehet.azd up
azd
Emellett konfigurálja a mintaalkalmazáshoz szükséges felhasználói titkos kulcsokat, például az OpenAI hozzáférési kulcsot.Feljegyzés
Ha az
azd up
üzembe helyezés során hibát tapasztal, keresse fel a hibaelhárítási szakaszt .
Próbálja ki a túra előnyeinek mintáját
Nyissa meg a
openai\01-HikeBenefitsSummary
könyvtárat egy terminálból vagy parancssorból.Futtassa a következő parancsokat az OpenAI API-kulcs titkos kódként való konfigurálásához a mintaalkalmazáshoz:
dotnet user-secrets init dotnet user-secrets set OpenAIKey <your-openai-key>
Az alkalmazás futtatásához használja a
dotnet run
parancsot:dotnet run
Nyissa meg a
azure-openai\01-HikeBenefitsSummary
könyvtárat egy terminálból vagy parancssorból.Az alkalmazás futtatásához használja a
dotnet run
parancsot:dotnet run
Tipp.
Ha hibaüzenet jelenik meg, előfordulhat, hogy az Azure OpenAI-erőforrások nem fejezték be az üzembe helyezést. Várjon néhány percet, és próbálkozzon újra.
A kód megismerése
Az alkalmazás a Microsoft.SemanticKernel
csomag használatával küld és fogad kéréseket az OpenAI szolgáltatásnak.
A Program.cs fájl tartalmazza az összes alkalmazáskódot. Az első több sornyi kódkészlet konfigurációs értékei és a parancs használatával korábban beállított OpenAI-kulcs lekérése dotnet user-secrets
.
var config = new ConfigurationBuilder().AddUserSecrets<Program>().Build();
string model = "gpt-3.5-turbo";
string key = config["OpenAIKey"];
Az Kernel
osztály megkönnyíti a kéréseket és válaszokat, és regisztrál egy OpenAIChatCompletion
szolgáltatást.
// Create a Kernel containing the OpenAI Chat Completion Service
Kernel kernel = Kernel.CreateBuilder()
.AddOpenAIChatCompletion(model, key)
.Build();
Az alkalmazás a Microsoft.SemanticKernel
csomag használatával küld és fogad kéréseket az Azure OpenAI szolgáltatásnak.
A Program.cs fájl tartalmazza az összes alkalmazáskódot. Az első több sornyi kódbetöltési titkos kód és konfigurációs érték, amelyek az dotnet user-secrets
alkalmazás kiépítése során lettek beállítva az Ön számára.
// Retrieve the local secrets saved during the Azure deployment
var config = new ConfigurationBuilder().AddUserSecrets<Program>().Build();
string endpoint = config["AZURE_OPENAI_ENDPOINT"];
string deployment = config["AZURE_OPENAI_GPT_NAME"];
string key = config["AZURE_OPENAI_KEY"];
Az Kernel
osztály megkönnyíti a kéréseket és válaszokat, és regisztrál egy OpenAIChatCompletion
szolgáltatást.
// Create a Kernel containing the Azure OpenAI Chat Completion Service
Kernel kernel = Kernel.CreateBuilder()
.AddAzureOpenAIChatCompletion(deployment, endpoint, key)
.Build();
A létrehozás után az Kernel
alkalmazáskód felolvassa a benefits.md
fájl tartalmát, és egy modell létrehozásához prompt
használja. A kérés arra utasítja a modellt, hogy foglalja össze a fájlszöveg tartalmát.
// Create and print out the prompt
string prompt = $"""
Please summarize the the following text in 20 words or less:
{File.ReadAllText("benefits.md")}
""";
Console.WriteLine($"user >>> {prompt}");
A InvokePromptAsync
függvény elküldi a prompt
modellt válasz létrehozásához.
// Submit the prompt and print out the response
string response = await kernel.InvokePromptAsync<string>(
prompt,
new(new OpenAIPromptExecutionSettings()
{
MaxTokens = 400
})
);
Console.WriteLine($"assistant >>> {response}");
Testre szabhatja a fájl szöveges tartalmát vagy az összegzés hosszát a válaszok közötti különbségek megtekintéséhez.
Az erőforrások eltávolítása
Ha már nincs szüksége a mintaalkalmazásra vagy erőforrásokra, távolítsa el a megfelelő üzembe helyezést és az összes erőforrást.
azd down
Hibaelhárítás
Windows rendszeren a következő hibaüzenetek jelenhetnek meg a futtatás azd up
után:
A postprovision.ps1 nincs digitálisan aláírva. A szkript nem lesz végrehajtva a rendszeren
A postprovision.ps1 szkript végrehajtása az alkalmazásban használt .NET-felhasználói titkos kódok beállításához történik. A hiba elkerülése érdekében futtassa a következő PowerShell-parancsot:
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
Ezután futtassa újra a azd up
parancsot.
Egy másik lehetséges hiba:
A "pwsh" nem ismerhető fel belső vagy külső parancsként, kezelhető programként vagy kötegelt fájlként. FIGYELMEZTETÉS: A "postprovision" horog a következő kilépési kóddal meghiúsult: '1', Elérési út: '.\infra\post-script\postprovision.ps1'. : kilépési kód: 1 A végrehajtás folytatódik, mivel a ContinueOnError értéke igaz.
A postprovision.ps1 szkript végrehajtása az alkalmazásban használt .NET-felhasználói titkos kódok beállításához történik. A hiba elkerülése érdekében futtassa manuálisan a szkriptet a következő PowerShell-paranccsal:
.\infra\post-script\postprovision.ps1
A .NET AI-alkalmazásokban már konfigurálva vannak a felhasználói titkos kódok, és tesztelhetők.