ERNIE-Bot.SDK 0.14.4

dotnet add package ERNIE-Bot.SDK --version 0.14.4
NuGet\Install-Package ERNIE-Bot.SDK -Version 0.14.4
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="ERNIE-Bot.SDK" Version="0.14.4" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add ERNIE-Bot.SDK --version 0.14.4
#r "nuget: ERNIE-Bot.SDK, 0.14.4"
#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 ERNIE-Bot.SDK as a Cake Addin
#addin nuget:?package=ERNIE-Bot.SDK&version=0.14.4

// Install ERNIE-Bot.SDK as a Cake Tool
#tool nuget:?package=ERNIE-Bot.SDK&version=0.14.4

ERNIE-Bot SDK

NuGet

ERNIE-Bot(文心千帆) .NET SDK

安装

dotnet add package ERNIE-Bot.SDK --prerelease

使用

引入该 Package 之后,实例化ERNIEBotClient 即可使用。

var clientId = builder.Configuration["ClientId"];
var secret = builder.Configuration["ClientSecret"];

var client = new ERNIEBotClient(clientId, secret);

ChatCompletion

直接使用ChatAsync方法可以完成对话。

其中 ModelEndpoint 是预置的模型地址,可以使用 ModelEndpoints 类来获取所有支持的模型地址。

await client.ChatAsync(new ChatCompletionsRequest()
{
    Messages = new List<Message>
        {
            new Message()
            {
                Content = input.Text,
                Role = MessageRole.User
            }
        }
}, ModelEndpoints.ERNIE_Bot);

ChatCompletionStream

使用 ChatStreamAsync 方法可以获取一个流,该流会不断的返回对话结果。

var results = client.ChatStreamAsync(new ChatCompletionsRequest()
{
    Messages = new List<Message>
        {
            new Message()
            {
                Content = input.Text,
                Role = MessageRole.User
            }
        }
}, ModelEndpoints.ERNIE_Bot);

可以使用一下方法获取流中的数据。

await foreach (var result in results)
{
    // do something with result
}

Embedding

使用 EmbeddingAsync 方法可以获取文本的 Embedding。 同样可以使用 ModelEndpoints 类来获取所支持的Embedding模型的地址。

var result = await _client.EmbeddingsAsync(new EmbeddingsRequest()
{
    Input = new List<string>()
        {
            input.Text
        }
},ModelEndpoints.Embedding_v1);

自定义模型

如果您使用了自定义的模型服务,可以通过以下方法声明自定义模型的地址。

var endpoint = new ModelEndpoint("{申请发布时填写的API地址}");
API 鉴权令牌的存储和管理

由于百度的接口采用了AccessToken的鉴权方式,所以需要在使用之前先获取AccessToken,然后在请求的时候带上AccessToken。为了方便管理,SDK提供了ITokenStore接口,用于存储和管理AccessToken。

用户可自行实现该接口,自行管理AccessToken的存储和更新。SDK提供了MemoryTokenStore,在内存中存储AccessToken,该实现依赖于MemoryCache

接口支持

  • API 鉴权
  • ERNIE-Bot
  • ERNIE-Bot-turbo
  • Embedding-V1
  • BLOOMZ-7B
  • Llama_2_7b_chat
  • Llama_2_13b_chat
  • Llama_2_70b_chat
  • Qianfan_BLOOMZ_7B_compressed
  • Qianfan_Chinese_Llama_2_7b
  • ChatGLM2_6b_32k
  • AquilaChat_7b
  • bge_large_zh
  • bge_large_en
  • 自定义chat模型
  • Prompt模版
Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  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. 
.NET Core netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.1 is compatible. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (2)

Showing the top 2 NuGet packages that depend on ERNIE-Bot.SDK:

Package Downloads
ERNIE-Bot.SemanticKernel

ERNIE-Bot(文心千帆) 集成 Semantic Kernel

ERNIE-Bot.KernelMemory

Package Description

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
0.14.4 151 3/19/2024
0.14.3 122 3/19/2024
0.14.2 123 3/18/2024
0.14.1 217 2/18/2024
0.14.0 139 2/6/2024
0.13.1 146 1/16/2024
0.13.0 2,083 12/21/2023
0.12.0-preview 134 12/11/2023
0.11.0-preview 151 12/5/2023
0.10.0-preview 142 11/28/2023
0.9.0-preview 118 11/23/2023
0.8.0-preview 107 11/14/2023
0.7.0-preview 577 10/16/2023
0.6.1-preview 139 9/6/2023
0.6.0-preview 118 9/5/2023
0.5.1-preview 1,063 8/31/2023
0.5.0-preview 190 8/29/2023
0.4.0-preview 109 8/29/2023
0.3.2-preview 487 7/11/2023
0.3.1-preview 176 7/6/2023
0.3.0-preview 145 7/6/2023
0.2.1-preview 170 6/29/2023
0.2.0-preview 130 6/28/2023
0.1.0-preview 89 6/25/2023