ResearchAI 1.0.0

There is a newer version of this package available.
See the version list below for details.
dotnet add package ResearchAI --version 1.0.0
                    
NuGet\Install-Package ResearchAI -Version 1.0.0
                    
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.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="ResearchAI" Version="1.0.0" />
                    
Directory.Packages.props
<PackageReference Include="ResearchAI" />
                    
Project file
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.0.0
                    
#r "nuget: ResearchAI, 1.0.0"
                    
#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.0.0
                    
#: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.0.0
                    
Install as a Cake Addin
#tool nuget:?package=ResearchAI&version=1.0.0
                    
Install as a Cake Tool

πŸ’¬ ResearchAI is an Azure OpenAI Chat 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

πŸš€ 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

πŸ”§ 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
    }
  }
}

πŸ§ͺ 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.

πŸ“Œ Notes

  • Temperature and Penalty 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.

πŸ“¦ Dependencies

  • Azure.AI.OpenAI
  • System.Collections.Concurrent

πŸ“„ License

Apache 2.0 License

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

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.2.3 92 8/14/2025
1.2.2 94 8/12/2025
1.2.1 89 8/10/2025
1.2.0 292 7/20/2025
1.0.0 251 7/18/2025