Rockhead.Extensions 0.1.0-preview

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

// Install Rockhead.Extensions as a Cake Tool
#tool nuget:?package=Rockhead.Extensions&version=0.1.0-preview&prerelease                

Rockhead.Extensions

Build & Test

Rockhead.Extensions is a set of extension methods for the AWS SDK for .NET Bedrock Runtime client. Amazon Bedrock is a serverless service making available through a unique API foundation models (FMs) from Amazon, AI21 Labs, Anthropic, Cohere, Meta, Mistral AI and Stability AI.

Rockhead.Extensions provides you extension methods to the low-level Bedrock Runtime API with strongly typed parameters and responses for each supported foundation models. It makes your developer life easier.

Rockhead.Extensions

Available on Nuget: https://www.nuget.org/packages/Rockhead.Extensions

  • AI21 Labs extension methods
    • InvokeJurassic2Async
      • An extension method to invoke Jurassic 2 models to generate text with strongly type parameters and response
      • Support Jurassic 2 Mid or Ultra models
  • Amazon extension methods
    • InvokeTitanImageGeneratorG1ForTextToImageAsync
      • An extension method to invoke Titan Image Generator G1 to generate images with strongly type parameters and response
    • InvokeTitanTextG1Async
      • An extension method to invoke Titan Text G1 models to generate text with strongly type parameters and response
      • Support Titan G1 Lite or Express
    • InvokeTitanTextG1WithResponseStreamAsync
      • An extension method to invoke Titan Text G1 models to generate text with strongly type parameters and returning an IAsyncEnumerable of strongly typed response
      • Support Titan G1 Lite or Express
    • InvokeTitanEmbeddingsG1TextAsync
      • An extension method to invoke Titan Embeddings G1 models to generate embeddings with strongly type parameters and response
    • InvokeTitanMultimodalEmbeddingsG1Async
      • An extension method to invoke Titan Multimodal Embeddings G1 models to generate embeddings with strongly type parameters and response
  • Anthropic extension methods
    • InvokeClaudeAsync
      • An extension method to invoke Claude models to generate text with strongly type parameters and response
      • Support Claude Instant v1, Claude v2 and Claude v2.1
    • InvokeClaudeWithResponseStreamAsync
      • An extension method to invoke Claude models to generate text with strongly type parameters and returning an IAsyncEnumerable of strongly typed response
      • Support Claude Instant v1, Claude v2 and Claude v2.1
  • Cohere extension methods
    • InvokeCommandV14Async
      • An extension method to invoke Command v14 models to generate text with strongly type parameters and response
      • Support Command v14 Text and Command v14 Light Text
    • InvokeCommandV14WithResponseStreamAsync
      • An extension method to invoke Command v14 models to generate text with strongly type parameters and returning an IAsyncEnumerable of strongly typed response
      • Support Command v14 Text and Command v14 Light Text
    • InvokeEmbedV3Async
  • Meta extension methods
    • InvokeLlama2Async
      • An extension method to invoke Llama 2 models to generate text with strongly type parameters and response
      • Support Llama 2 13B Chat v1 and Llama 2 70B Chat v1
    • InvokeLlama2WithResponseStreamAsync
      • An extension method to invoke Llama 2 models to generate text with strongly type parameters and returning an IAsyncEnumerable of strongly typed response
      • Support Llama 2 13B Chat v1 and Llama 2 70B Chat v1
  • Stability AI extension methods
    • InvokeStableDiffusionXlForTextToImageAsync
      • An extension method to invoke Stable Diffusion XL to generate images with strongly type parameters and response

Setup

dotnet add package rockhead.extensions

Usage

Below are a few examples of using the extension methods to invoke different models.

Invoke Claude v2.1 model

public async Task<string> GetLlmDescription()
{
    const string prompt = @"Human: Describe in one sentence what it a large language model\n\nAssistant:";
    var config = new ClaudeTextGenerationConfig()
    {
        MaxTokensToSample = 2048,
        Temperature = 0.8f
    };
    
    var response = await BedrockRuntime.InvokeClaudeAsync(new Model.ClaudeV2_1(), prompt);
    
    return response?.Completion ?? "";
}

Invoke Claude v2.1 model with a response stream

public async Task<string> GetLlmDescription()
    {
        const string prompt = @"Human: Describe in one sentence what it a large language model\n\nAssistant:";
        var config = new ClaudeTextGenerationConfig()
        {
            MaxTokensToSample = 2048,
            Temperature = 0.8f
        };

        var response = new StringBuilder();
        await foreach (var chunk in BedrockRuntime.InvokeClaudeWithResponseStreamAsync(new Model.ClaudeV2_1(), prompt))
        {
            response.Append(chunk.Completion);
        }
    
        return response.ToString();
    }

Invoke Llama 2 70B Chat

public async Task<string> GetLlmDescription()
{
    const string prompt = @"Describe in one sentence what it a large language model";
    var config = new Llama2TextGenerationConfig()
    {
        MaxGenLen = 2048,
        Temperature = 0.8f
    };
    
    var response = await BedrockRuntime.InvokeLlama2Async(new Model.Llama270BChatV1(), prompt);
    
    return response?.Generation ?? "";
}

Learn More

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

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
0.1.5-preview 627 5/16/2024
0.1.4-preview 51 5/14/2024
0.1.3-preview 52 5/14/2024
0.1.2-preview 91 4/26/2024
0.1.1-preview 60 4/26/2024
0.1.0-preview 75 3/15/2024