Some checks failed
CodeQL / Analyze (csharp) (push) Has been cancelled
CodeQL / Analyze (python) (push) Has been cancelled
dotnet-build-and-test / paths-filter (push) Has been cancelled
dotnet-build-and-test / dotnet-build-and-test (Debug, windows-latest, net9.0) (push) Has been cancelled
dotnet-build-and-test / dotnet-build-and-test (Release, integration, true, ubuntu-latest, net10.0) (push) Has been cancelled
dotnet-build-and-test / dotnet-build-and-test (Release, integration, true, windows-latest, net472) (push) Has been cancelled
dotnet-build-and-test / dotnet-build-and-test (Release, ubuntu-latest, net8.0) (push) Has been cancelled
dotnet-build-and-test / dotnet-build-and-test-check (push) Has been cancelled
Python - Merge - Tests / paths-filter (push) Has been cancelled
Python - Merge - Tests / Python Tests - Core (integration, ubuntu-latest, 3.10) (push) Has been cancelled
Python - Merge - Tests / Python Tests - Azure AI (integration, ubuntu-latest, 3.10) (push) Has been cancelled
Python - Merge - Tests / python-integration-tests-check (push) Has been cancelled
Python - Lab Tests / paths-filter (push) Has been cancelled
Python - Lab Tests / Python Lab Tests (ubuntu-latest, 3.10) (push) Has been cancelled
Python - Lab Tests / Python Lab Tests (ubuntu-latest, 3.11) (push) Has been cancelled
Python - Lab Tests / Python Lab Tests (ubuntu-latest, 3.12) (push) Has been cancelled
Python - Lab Tests / Python Lab Tests (ubuntu-latest, 3.13) (push) Has been cancelled
Python - Lab Tests / Python Lab Tests (ubuntu-latest, 3.14) (push) Has been cancelled
Python - Lab Tests / Python Lab Tests (windows-latest, 3.10) (push) Has been cancelled
Python - Lab Tests / Python Lab Tests (windows-latest, 3.11) (push) Has been cancelled
Python - Lab Tests / Python Lab Tests (windows-latest, 3.12) (push) Has been cancelled
Python - Lab Tests / Python Lab Tests (windows-latest, 3.13) (push) Has been cancelled
Python - Lab Tests / Python Lab Tests (windows-latest, 3.14) (push) Has been cancelled
Check .md links / markdown-link-check (push) Has been cancelled
42 lines
1.8 KiB
C#
42 lines
1.8 KiB
C#
// Copyright (c) Microsoft. All rights reserved.
|
|
|
|
// This sample shows how to create and use a simple AI agent with OpenAI Assistants as the backend.
|
|
|
|
// WARNING: The Assistants API is deprecated and will be shut down.
|
|
// For more information see the OpenAI documentation: https://platform.openai.com/docs/assistants/migration
|
|
|
|
#pragma warning disable CS0618 // Type or member is obsolete - OpenAI Assistants API is deprecated but still used in this sample
|
|
|
|
using Microsoft.Agents.AI;
|
|
using OpenAI;
|
|
using OpenAI.Assistants;
|
|
|
|
var apiKey = Environment.GetEnvironmentVariable("OPENAI_API_KEY") ?? throw new InvalidOperationException("OPENAI_API_KEY is not set.");
|
|
var model = Environment.GetEnvironmentVariable("OPENAI_MODEL") ?? "gpt-4o-mini";
|
|
|
|
const string JokerName = "Joker";
|
|
const string JokerInstructions = "You are good at telling jokes.";
|
|
|
|
// Get a client to create/retrieve server side agents with.
|
|
var assistantClient = new OpenAIClient(apiKey).GetAssistantClient();
|
|
|
|
// You can create a server side assistant with the OpenAI SDK.
|
|
var createResult = await assistantClient.CreateAssistantAsync(model, new() { Name = JokerName, Instructions = JokerInstructions });
|
|
|
|
// You can retrieve an already created server side assistant as an AIAgent.
|
|
AIAgent agent1 = await assistantClient.GetAIAgentAsync(createResult.Value.Id);
|
|
|
|
// You can also create a server side assistant and return it as an AIAgent directly.
|
|
AIAgent agent2 = await assistantClient.CreateAIAgentAsync(
|
|
model: model,
|
|
name: JokerName,
|
|
instructions: JokerInstructions);
|
|
|
|
// You can invoke the agent like any other AIAgent.
|
|
AgentThread thread = await agent1.GetNewThreadAsync();
|
|
Console.WriteLine(await agent1.RunAsync("Tell me a joke about a pirate.", thread));
|
|
|
|
// Cleanup for sample purposes.
|
|
await assistantClient.DeleteAssistantAsync(agent1.Id);
|
|
await assistantClient.DeleteAssistantAsync(agent2.Id);
|