Azure OpenAI ügyfélkódtár a .NET-hez – 1.0.0-béta.5-ös verzió
A .NET-hez készült Azure OpenAI ügyfélkódtár az OpenAI REST API-jainak adaptációja, amely idiomatikus felületet és gazdag integrációt biztosít az Azure SDK-ökoszisztéma többi részével. Csatlakozhat az Azure OpenAI-erőforrásokhoz vagy a nem Azure OpenAI-következtetési végponthoz, így nagyszerű választás még a nem Azure OpenAI-fejlesztéshez is.
Használja az Azure OpenAI ügyfélkódtárát a következő célokra:
Az Azure OpenAI egy felügyelt szolgáltatás, amely lehetővé teszi a fejlesztők számára az OpenAI-modellekből származó tartalmak üzembe helyezését, finomhangolását és létrehozását az Azure-erőforrásokon.
Forráskód | Csomag (NuGet) | API-referenciadokumentáció | Termékdokumentáció | Minták
Első lépések
Előfeltételek
Ha Azure OpenAI-erőforrást szeretne használni, azure-előfizetéssel és Azure OpenAI-hozzáféréssel kell rendelkeznie. Így létrehozhat egy Azure OpenAI-erőforrást, és lekérheti a kapcsolati URL-címet és az API-kulcsokat is. További információ : Rövid útmutató: Szöveg létrehozása az Azure OpenAI szolgáltatással.
Ha az Azure OpenAI .NET ügyfélkódtárat szeretné használni a nem Azure OpenAI-hoz való csatlakozáshoz, szüksége lesz egy API-kulcsra egy fejlesztői fiókból a címen https://platform.openai.com/.
A csomag telepítése
Telepítse a .NET ügyfélkódtárát a NuGettel:
dotnet add package Azure.AI.OpenAI --prerelease
Az ügyfél hitelesítése
Az Azure OpenAI vagy az OpenAI használatához létre kell hoznia egy OpenAIClient osztálypéldányt. Ha egy ügyfelet az Azure OpenAI-val való használatra szeretne konfigurálni, adjon meg egy érvényes végponti URI-t egy Azure OpenAI-erőforrásnak, valamint egy, az Azure OpenAI-erőforrás használatára jogosult kulcs-hitelesítő adatokat, jogkivonat-hitelesítő adatokat vagy Azure-identitás hitelesítő adatait. Ha ehelyett úgy szeretné konfigurálni az ügyfelet, hogy csatlakozzon az OpenAI szolgáltatásához, adjon meg egy API-kulcsot az OpenAI fejlesztői portáljáról.
OpenAIClient client = useAzureOpenAI
? new OpenAIClient(
new Uri("https://your-azure-openai-resource.com/"),
new AzureKeyCredential("your-azure-openai-resource-api-key"))
: new OpenAIClient("your-api-key-from-platform.openai.com");
OpenAIClient létrehozása Azure Active Directory hitelesítő adatokkal
Az első lépések útmutatójában szereplő legtöbb példában ügyfél-előfizetési kulcshitelesítést használunk, de az Azure Identity-kódtár használatával az Azure Active Directoryval is végezhet hitelesítést. Az alább látható DefaultAzureCredential szolgáltató vagy az Azure SDK-hoz biztosított egyéb hitelesítőadat-szolgáltatók használatához telepítse az Azure.Identity csomagot:
dotnet add package Azure.Identity
string endpoint = "https://myaccount.openai.azure.com/";
var client = new OpenAIClient(new Uri(endpoint), new DefaultAzureCredential());
Fő fogalmak
A fő megérteni kívánt fogalom a Befejezések. Röviden ismertetve, a kiegészítések funkcióját szöveges parancssor formájában biztosítja, amely egy adott modell használatával megkísérli egyeztetni a környezetet és a mintákat, és kimeneti szöveget ad meg. Az alábbi kódrészlet durva áttekintést nyújt (további részletek a GenerateChatbotResponsesWithToken
mintakódban találhatók):
OpenAIClient client = useAzureOpenAI
? new OpenAIClient(
new Uri("https://your-azure-openai-resource.com/"),
new AzureKeyCredential("your-azure-openai-resource-api-key"))
: new OpenAIClient("your-api-key-from-platform.openai.com");
Response<Completions> response = await client.GetCompletionsAsync(
"text-davinci-003", // assumes a matching model deployment or model name
"Hello, world!");
foreach (Choice choice in response.Value.Choices)
{
Console.WriteLine(choice.Text);
}
Menetbiztonság
Garantáljuk, hogy minden ügyfélpéldány-metódus szálbiztos és független egymástól (iránymutatás). Ez biztosítja, hogy az ügyfélpéldányok újrafelhasználására vonatkozó javaslat mindig biztonságos legyen, még a szálak között is.
További fogalmak
Ügyfélbeállítások | A válasz | elérése Hosszú ideig futó műveletek | Hibák | kezelése Diagnosztika | Gúnyos | Ügyfélélettartam
Példák
A minták használatával megismerkedhet a különböző API-kkal.
Csevegőrobot-válasz létrehozása
A GenerateChatbotResponse
metódus egy DefaultAzureCredential használatával hitelesít, majd szöveges válaszokat hoz létre a bemeneti kérésekre.
string endpoint = "https://myaccount.openai.azure.com/";
var client = new OpenAIClient(new Uri(endpoint), new DefaultAzureCredential());
string deploymentName = "text-davinci-003";
string prompt = "What is Azure OpenAI?";
Console.Write($"Input: {prompt}");
Response<Completions> completionsResponse = client.GetCompletions(deploymentName, prompt);
string completion = completionsResponse.Value.Choices[0].Text;
Console.WriteLine($"Chatbot: {completion}");
Több csevegőrobot-válasz létrehozása előfizetési kulccsal
A GenerateMultipleChatbotResponsesWithSubscriptionKey
metódus példaként szolgál a bemeneti kérésekre adott szöveges válaszok Azure-előfizetési kulccsal történő létrehozására
// Replace with your Azure OpenAI key
string key = "YOUR_AZURE_OPENAI_KEY";
string endpoint = "https://myaccount.openai.azure.com/";
var client = new OpenAIClient(new Uri(endpoint), new AzureKeyCredential(key));
List<string> examplePrompts = new(){
"How are you today?",
"What is Azure OpenAI?",
"Why do children love dinosaurs?",
"Generate a proof of Euler's identity",
"Describe in single words only the good things that come into your mind about your mother.",
};
string deploymentName = "text-davinci-003";
foreach (string prompt in examplePrompts)
{
Console.Write($"Input: {prompt}");
CompletionsOptions completionsOptions = new CompletionsOptions();
completionsOptions.Prompts.Add(prompt);
Response<Completions> completionsResponse = client.GetCompletions(deploymentName, completionsOptions);
string completion = completionsResponse.Value.Choices[0].Text;
Console.WriteLine($"Chatbot: {completion}");
}
Szöveg összegzése befejezéssel
A SummarizeText
metódus a megadott bemeneti parancssor összegzését hozza létre.
string endpoint = "https://myaccount.openai.azure.com/";
var client = new OpenAIClient(new Uri(endpoint), new DefaultAzureCredential());
string textToSummarize = @"
Two independent experiments reported their results this morning at CERN, Europe's high-energy physics laboratory near Geneva in Switzerland. Both show convincing evidence of a new boson particle weighing around 125 gigaelectronvolts, which so far fits predictions of the Higgs previously made by theoretical physicists.
""As a layman I would say: 'I think we have it'. Would you agree?"" Rolf-Dieter Heuer, CERN's director-general, asked the packed auditorium. The physicists assembled there burst into applause.
:";
string summarizationPrompt = @$"
Summarize the following text.
Text:
""""""
{textToSummarize}
""""""
Summary:
";
Console.Write($"Input: {summarizationPrompt}");
var completionsOptions = new CompletionsOptions()
{
Prompts = { summarizationPrompt },
};
string deploymentName = "text-davinci-003";
Response<Completions> completionsResponse = client.GetCompletions(deploymentName, completionsOptions);
string completion = completionsResponse.Value.Choices[0].Text;
Console.WriteLine($"Summarization: {completion}");
Csevegési üzenetek streamelése nem Azure OpenAI-val
string nonAzureOpenAIApiKey = "your-api-key-from-platform.openai.com";
var client = new OpenAIClient(nonAzureOpenAIApiKey, new OpenAIClientOptions());
var chatCompletionsOptions = new ChatCompletionsOptions()
{
Messages =
{
new ChatMessage(ChatRole.System, "You are a helpful assistant. You will talk like a pirate."),
new ChatMessage(ChatRole.User, "Can you help me?"),
new ChatMessage(ChatRole.Assistant, "Arrrr! Of course, me hearty! What can I do for ye?"),
new ChatMessage(ChatRole.User, "What's the best way to train a parrot?"),
}
};
Response<StreamingChatCompletions> response = await client.GetChatCompletionsStreamingAsync(
deploymentOrModelName: "gpt-3.5-turbo",
chatCompletionsOptions);
using StreamingChatCompletions streamingChatCompletions = response.Value;
await foreach (StreamingChatChoice choice in streamingChatCompletions.GetChoicesStreaming())
{
await foreach (ChatMessage message in choice.GetMessageStreaming())
{
Console.Write(message.Content);
}
Console.WriteLine();
}
Hibaelhárítás
Amikor az Azure OpenAI-t a .NET SDK használatával használja, a szolgáltatás által visszaadott hibák megegyeznek a REST API-kérésekhez visszaadott HTTP-állapotkódokkal.
Ha például olyan végponttal próbál létrehozni egy ügyfelet, amely nem egyezik meg az Azure OpenAI-erőforrásvégponttal, a rendszer hibát 404
ad vissza, amely Resource Not Found
azt jelzi, hogy .
Következő lépések
- Adjon meg egy hivatkozást további példakódokra, ideális esetben azokra, akik a csomag
/samples
könyvtárában a README mellett ülnek. - Szükség esetén mutasson a felhasználókra más, esetleg hasznos csomagokra.
- Ha úgy gondolja, hogy jó esély van arra, hogy a fejlesztők hiba miatt belebotlanak a csomagba (mivel bizonyos funkciókat keresnek, és tévesen azt hiszik, hogy a csomag biztosítja ezt a funkciót), mutasson azokra a csomagokra, amelyeket esetleg keresnek.
Közreműködés
A kódtár létrehozásával, tesztelésével és közreműködésével kapcsolatos részletekért tekintse meg az OpenAI CONTRIBUTING.md .
A projektben szívesen fogadjuk a hozzájárulásokat és a javaslatokat. A legtöbb hozzájáruláshoz el kell fogadnia egy Közreműködői licencszerződést (CLA-t), amelyben kijelenti, hogy jogosult arra, hogy ránk ruházza hozzájárulása felhasználási jogát, és ezt ténylegesen meg is teszi. A részletekért látogasson el a cla.microsoft.com.
A lekéréses kérelmek elküldésekor egy CLA-robot automatikusan meghatározza, hogy kell-e biztosítania CLA-t, és megfelelően kitölti a lekéréses kérelmet (például címke, megjegyzés). Egyszerűen csak kövesse a robot által megadott utasításokat. Ezt csak egyszer kell elvégeznie az összes olyan tárházban, amely a CLA-t használja.
A projekt a Microsoft nyílt forráskódú projekteket szabályozó etikai kódexe, a Microsoft Open Source Code of Conduct hatálya alá esik. További információkért lásd a viselkedési szabályzattal kapcsolatos gyakori kérdéseket , vagy vegye fel a kapcsolatot opencode@microsoft.com az esetleges további kérdésekkel vagy megjegyzésekkel.
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: