GroqNet 1.0.0

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

// Install GroqNet as a Cake Tool
#tool nuget:?package=GroqNet&version=1.0.0                

Groq .NET Core Client Service

NuGet version (GroqNet) NuGet downloads (GroqNet) GitHub license

The Groq .NET Core is a library for interacting with the Groq API, the quickest LLM inference method available yet.

About

The library provides a simple and easy-to-use interface for accessing the Groq API, allowing developers to integrate the platform's capabilities into their applications.

Features

  • Sends HTTP requests to the Groq API
  • Streaming chat completions
  • Handles rate limiting and retries when necessary
  • Supports JSON serialization and deserialization using System.Text.Json
  • Can be used with ILogger for logging

Usage

Here's an example of how to use the client library:

using GroqNet;
using GroqNet.ChatCompletions;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;

var apiKey = Environment.GetEnvironmentVariable("API_Key_Groq", EnvironmentVariableTarget.User);

var host = new HostBuilder()
    .ConfigureServices(services =>
    {
        services.AddHttpClient();
        services.AddGroqClient(apiKey, GroqModel.LLaMA3_8b);
    }).Build();

var groqClient = host.Services.GetRequiredService<GroqClient>();

var history = new GroqChatHistory
{
    new("What is the capital of France?")
};

// -- Example 1: Get chat completions without streaming
var result = await groqClient.GetChatCompletionsAsync(history);

Console.WriteLine(result.Choices.First().Message.Content);
Console.WriteLine($"Total tokens used: {result.Usage.TotalTokens}; Time to response: {result.Usage.TotalTime} sec.");

// -- Example 2: Get chat completions with streaming
await foreach (var msg in groqClient.GetChatCompletionsStreamingAsync(history))
{
    Console.WriteLine(msg.Choices[0].Delta.Content);

    if (msg?.XGroq?.Usage != null)
    {
        Console.WriteLine($"Total tokens used: {msg?.XGroq?.Usage.TotalTokens}; Time to response: {msg?.XGroq?.Usage.TotalTime} sec.");
    }
}

License

The Groq .NET Core Client Library is licensed under the MIT License.

Contribution

Contributions are welcome! If you find a bug or have an idea for a new feature, please open an issue and let us know.

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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on GroqNet:

Package Downloads
Eliassen.GroqCloud

Package Description

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.0.1 325 5/13/2024
1.0.0 90 5/2/2024
0.9.0 104 4/29/2024