ResearchAI 1.2.1
There is a newer version of this package available.
See the version list below for details.
See the version list below for details.
dotnet add package ResearchAI --version 1.2.1
NuGet\Install-Package ResearchAI -Version 1.2.1
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="ResearchAI" Version="1.2.1" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="ResearchAI" Version="1.2.1" />
<PackageReference Include="ResearchAI" />
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add ResearchAI --version 1.2.1
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: ResearchAI, 1.2.1"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package ResearchAI@1.2.1
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=ResearchAI&version=1.2.1
#tool nuget:?package=ResearchAI&version=1.2.1
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
π¬ ResearchAI is an Azure OpenAI & Computer Vision Client (.NET)
This project provides a simple yet extensible .NET wrapper for Azure OpenAI's Chat Completion API, including:
- Per-session chat memory (thread-safe)
- Configurable
ChatCompletionOptions
(like temperature, penalties, token limits) - Injection of system context
- Clean abstraction for chatbot/message processing
- Analyze images using Azure Vision API
π Features
- β
Session-based memory (thread-safe with
ConcurrentDictionary
) - β
Configurable model behavior via
ChatCompletionSettings
- β Custom system context per session
- β Automatically limits and validates Azure AI parameters
- β Analyze images using Azure Vision API
π§ Configuration
Hereβs how you can configure the client in your application:
{
"AzureOpenAI": {
"Endpoint": "https://<your-openai-resource>.openai.azure.com/",
"Key": "<your-api-key>",
"DeploymentName": "gpt-35-turbo",
"SystemContext": "You are a creative assistant for generating photo captions.",
"ChatCompletionSettings": {
"Temperature": 0.8,
"MaxOutputTokenCount": 800,
"FrequencyPenalty": 0.2,
"PresencePenalty": 0.3
}
},
"ImageVisionAI": {
"Endpoint": "https://<your-visionai-resource>.cognitiveservices.azure.com/",
"Key": "<your-api-key>"
}
}
π§ͺ Sample Usage
var options = new AzureOpenAIOptions
{
Endpoint = "<your-endpoint>",
Key = "<your-key>",
DeploymentName = "gpt-35-turbo",
SystemContext = "You are a helpful assistant.",
ChatCompletionSettings = new ChatCompletionSettings
{
Temperature = 0.7f,
MaxOutputTokenCount = 800,
FrequencyPenalty = 0.0f,
PresencePenalty = 0.0f
}
};
var openAI = new AzureOpenAI(options);
var response = await openAI.SendMessageAsync("user-session-id", "Describe a sunset wedding on the beach.");
Console.WriteLine(response.Content[0].Text);
π§ How It Works
- First message initializes a session with the system prompt.
- Each user message is added to the session history.
- The history is passed to Azure OpenAI to maintain conversation context.
- The assistant response is added back into the session.
πΈ Analyze Image
var imageClientModel = new ImageClientModel
{
Endpoint = "<your-computer-vision-endpoint>",
Key = "<your-computer-vision-key>"
};
var client = new ImageClient(imageClientModel);
var result = client.AnalyzeImage("https://example.com/image.jpg");
With Azure OpenAI (summary, caption, tags, etc.)
string output = await client.AnalyzeImageWithChatAsync("https://example.com/image.jpg", "your-session-id");
Console.WriteLine(output);
π§Ύ Sample Output Format from Image Client
{
"title": "City Walk Vibes",
"caption": "A group of friends enjoying a sunny day in the city, dressed casually with smiles all around.",
"instagram_tags": ["#citylife", "#friends", "#urbanstyle", "#weekendvibes"],
"facebook_tags": ["#CityWalk", "#HappyPeople", "#CasualLook"],
"objects": ["person", "building", "road", "backpack"],
"people": [
{
"gender": "male",
"clothing": "blue jeans and white t-shirt",
"description": "Man walking with a smile carrying a backpack",
"activity": "walking in the city"
}
]
}
π Notes
Temperature
andPenalty
values are clamped to valid ranges (0β2).MaxOutputTokenCount
is limited between 512 and 800 to fit model constraints.- You must provide a valid
sessionId
for session tracking to work.
π License
Apache 2.0 License
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
net8.0
- Azure.AI.OpenAI (>= 2.1.0)
- Azure.AI.Vision.ImageAnalysis (>= 1.0.0)
- Microsoft.Extensions.Options (>= 9.0.7)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.