2.代碼示例

2.1.支持創(chuàng)建AccessToken訪問憑證(一次運行只創(chuàng)建一次,后續(xù)將在緩存在中讀取)

CreateAccessTokenAsync

2.2.普通聊天和流式聊天示例(支持多輪和單論對話)

vb.net示例

Imports System.IO
Imports Ohh.ChatAi.TotalApi.ErnieTurbo
Imports Ohh.ChatAi.TotalApi.ErnieTurbo.Models
Imports Ohh.ChatAi.TotalApi.ErnieTurbo.Models.Consts

Public Class ErnieWenXinExample

''' <summary>
''' DeepSeek對象
''' </summary>
Private _ernieTurboClient As ErnieTurboClient

''' <summary>
''' 系統(tǒng)角色設定
''' </summary>
Private Const SysContent As String = "你是 百度千帆大模型 文心一言 AI 提供的人工智能助手,你更擅長中文和英文的對話。你會為用戶提供安全,有幫助,準確的回答。同時,你會拒絕一切涉及恐怖主義,種族歧視,黃色暴力等問題的回答。通義千問 為專有名詞,不可翻譯成其他語言"

''' <summary>
''' 構造函數(shù)
''' </summary>
Public Sub New()
InitializeComponent()
''----------
_ernieTurboClient = New ErnieTurboClient("AK-XXXXXXX", "SK-XXXXXXXXXX")
End Sub

Private Sub ErnieWenXinExample_Load(sender As Object, e As EventArgs) Handles MyBase.Load

End Sub
''' <summary>
''' 單論流式對話
''' </summary>
''' <param name="sender"></param>
''' <param name="e"></param>
Private Async Sub button1_Click(sender As Object, e As EventArgs) Handles button1.Click
Try

richTextBox1.Clear()
''------
Dim chatReq As New ChatRequest With
{
.model = ChatModels.Ernie40Turbo8K,
.system = SysContent,
.messages = New List(Of MessagesItem) From {
New MessagesItem With {
.role = ChatRoles.User,
.content = textBox1.Text
}
},
.stream = True
}
'' 訂閱事件
RemoveHandler _ernieTurboClient.MessageReceivedEventHandler, AddressOf OnMessageReceived
RemoveHandler _ernieTurboClient.ErrorEventHandler, AddressOf OnErrorMsg
AddHandler _ernieTurboClient.MessageReceivedEventHandler, AddressOf OnMessageReceived
AddHandler _ernieTurboClient.ErrorEventHandler, AddressOf OnErrorMsg
'' 開始任務
Await _ernieTurboClient.ChatStreamAsync(chatReq)
Catch ex As Exception
Console.WriteLine("流式聊天失敗:" + ex.Message)
End Try
End Sub

''' <summary>
''' 訂閱SSE事件
''' </summary>
''' <param name="s"></param>
''' <param name="m"></param>
Sub OnMessageReceived(s As Object, m As ChatResponse)
''Console.WriteLine("聊天內容:" + ee);
Invoke(Sub()
Dim msg As String = m.result
If Not String.IsNullOrWhiteSpace(msg) Then richTextBox1.AppendText(msg.Replace("vbLf", vbCrLf))
End Sub)
End Sub

''' <summary>
''' 局部函數(shù),訂閱SSE 錯誤事件
''' </summary>
Sub OnErrorMsg(s As Object, ex As Exception)
MessageBox.Show(ex.Message)
End Sub

''' <summary>
''' 單論普通對話
''' </summary>
''' <param name="sender"></param>
''' <param name="e"></param>
Private Async Sub button2_Click(sender As Object, e As EventArgs) Handles button2.Click
Try

''------
Dim chatReq As New ChatRequest With
{
.model = ChatModels.Ernie40Turbo8K,
.system = SysContent,
.messages = New List(Of MessagesItem) From {
New MessagesItem With {
.role = ChatRoles.User,
.content = textBox1.Text
}
}
}
''-------------
Dim chatRes As ChatResponse = Await _ernieTurboClient.ChatAsync(chatReq)
Console.WriteLine("聊天內容:" & chatRes.result)
richTextBox1.Text = chatRes.result.Replace("vbLf", vbCrLf)

Catch ex As Exception

Console.WriteLine("聊天失敗:" & ex.Message)
End Try
End Sub
End Class

C# 示例

using Ohh.ChatAi.TotalApi.ErnieTurbo;
using Ohh.ChatAi.TotalApi.ErnieTurbo.Models;
using Ohh.ChatAi.TotalApi.ErnieTurbo.Models.Consts;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Ohh.ChatAi.TotalApi.CSharp.Example
{
public partial class ErnieWenXinExample : Form
{
/// <summary>
/// DeepSeek對象
/// </summary>
private ErnieTurboClient _ernieTurboClient;

/// <summary>
/// 系統(tǒng)角色設定
/// </summary>
private const string SysContent = "你是 百度千帆大模型 文心一言 AI 提供的人工智能助手,你更擅長中文和英文的對話。你會為用戶提供安全,有幫助,準確的回答。同時,你會拒絕一切涉及恐怖主義,種族歧視,黃色暴力等問題的回答。通義千問 為專有名詞,不可翻譯成其他語言";

/// <summary>
/// 構造函數(shù)
/// </summary>
public ErnieWenXinExample()
{
InitializeComponent();
//----------
_ernieTurboClient = new ErnieTurboClient("AK-XXXXXXX", "SK-XXXXXXXXXXXXX");
}

/// <summary>
/// 單輪流式聊天
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private async void button1_Click(object sender, EventArgs e)
{
try
{
richTextBox1.Clear();
//------
var chatReq = new ChatRequest
{
model = ChatModels.Ernie40Turbo8K,
system = SysContent,
messages = new List<MessagesItem> {
new MessagesItem {
role = ChatRoles.User, content = textBox1.Text
}
},
stream = true
};
// 訂閱事件
_ernieTurboClient.MessageReceivedEventHandler -= OnMessageReceived;
_ernieTurboClient.ErrorEventHandler -= OnErrorMsg;
_ernieTurboClient.MessageReceivedEventHandler += OnMessageReceived;
_ernieTurboClient.ErrorEventHandler += OnErrorMsg;
// 開始任務
await _ernieTurboClient.ChatStreamAsync(chatReq);
// 局部函數(shù),訂閱SSE 消息事件
void OnMessageReceived(object s, ChatResponse m)
{
//Console.WriteLine("聊天內容:" + ee);
Invoke(new Action(() =>
{
var msg = m.result;
if (msg != null) richTextBox1.AppendText(msg);
}));
}
// 局部函數(shù),訂閱SSE 錯誤事件
void OnErrorMsg(object s, Exception ex)
{
MessageBox.Show(ex.Message);
}
}
catch (Exception ex)
{
Console.WriteLine("流式聊天失敗:" + ex.Message);
}
}

/// <summary>
/// 單輪普通聊天
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private async void button2_Click(object sender, EventArgs e)
{
try
{
var chatReq = new ChatRequest
{
model = ChatModels.Ernie40Turbo8K,
system = SysContent,
messages = new List<MessagesItem> {
new MessagesItem {
role = ChatRoles.User,
content = textBox1.Text
}
}
};
var chatRes = await _ernieTurboClient.ChatAsync(chatReq);
Console.WriteLine("聊天內容:" + chatRes.result);
richTextBox1.Text = chatRes.result;
}
catch (Exception ex)
{
Console.WriteLine("聊天失敗:" + ex.Message);
}
}
}
}

文章轉自微信公眾號@辦公魔盒

上一篇:

表格插件wpDataTables-將 WordPress 表與 Google Sheets API 連接

下一篇:

VB.NET,C#.NET接入抖音豆包AI對話大模型
#你可能也喜歡這些API文章!

我們有何不同?

API服務商零注冊

多API并行試用

數(shù)據(jù)驅動選型,提升決策效率

查看全部API→
??

熱門場景實測,選對API

#AI文本生成大模型API

對比大模型API的內容創(chuàng)意新穎性、情感共鳴力、商業(yè)轉化潛力

25個渠道
一鍵對比試用API 限時免費

#AI深度推理大模型API

對比大模型API的邏輯推理準確性、分析深度、可視化建議合理性

10個渠道
一鍵對比試用API 限時免費