VB.NET,C#.NET接入抖音豆包AI对话大模型
作者:weixin02 · 2024-11-28 · 阅读时间:8分钟
1.新增接入 抖音豆包AI 方舟大模型 Nuget直接搜索Ohh.ChatAi.TotalApi 2.已集成抖 […]
1.新增接入 抖音豆包AI 方舟大模型
Nuget直接搜索Ohh.ChatAi.TotalApi
https://www.nuget.org/packages/Ohh.ChatAi.TotalApi

2.已集成抖音豆包方舟大模型
2.1.开通模型计费
https://www.volcengine.com/docs/82379/1099320
2.2.豆包模型比较特殊,model字段使用的是接入点ID,请根据以下文档创建,然后复制ep-xxxxxx-vkfww的接入点ID填入Model字段即可
https://www.volcengine.com/docs/82379/1099522

2.3.普通聊天和流式聊天示例(支持多轮和单论对话)
vb.net示例
using Ohh.ChatAi.TotalApi.DouYinDouBao;
using Ohh.ChatAi.TotalApi.DouYinDouBao.Models;
using Ohh.ChatAi.TotalApi.DouYinDouBao.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 DouYinDouBaoExample : Form
{
/// <summary>
/// DouYinDouBao对象
/// </summary>
private DouYinDouBaoClient _douYinDouBaoClient;
/// <summary>
/// 系统角色设定
/// </summary>
private const string SysContent = "你是 抖音豆包 AI 提供的人工智能助手,你更擅长中文和英文的对话。你会为用户提供安全,有帮助,准确的回答。同时,你会拒绝一切涉及恐怖主义,种族歧视,黄色暴力等问题的回答。Moonshot AI 为专有名词,不可翻译成其他语言";
/// <summary>
/// 构造函数
/// </summary>
public DouYinDouBaoExample()
{
InitializeComponent();
//---------
_douYinDouBaoClient = new DouYinDouBaoClient("xxxxxxxxxxxxxxxxxxx");
}
private void DouYinDouBaoExample_Load(object sender, EventArgs e)
{
}
/// <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 = "ep-20240704033659-vkfww", //以 endpoint_id 索引对应的模型接入点。接入点创建:模型推理->创建模型推理->复制ep-xxxxxxx-vkfww的模型ID
messages = new List<MessagesItem> {
new MessagesItem { role = ChatRoles.System, content = SysContent },
new MessagesItem { role = ChatRoles.User, content = textBox1.Text }
},
stream = true
};
// 订阅事件
_douYinDouBaoClient.MessageReceivedEventHandler -= OnMessageReceived;
_douYinDouBaoClient.ErrorEventHandler -= OnErrorMsg;
_douYinDouBaoClient.MessageReceivedEventHandler += OnMessageReceived;
_douYinDouBaoClient.ErrorEventHandler += OnErrorMsg;
// 开始任务
await _douYinDouBaoClient.ChatStreamAsync(chatReq);
// 局部函数,订阅SSE 消息事件
void OnMessageReceived(object s, ChatResponse m)
{
//Console.WriteLine("聊天内容:" + ee);
Invoke(new Action(() =>
{
var msg = m.choices?.FirstOrDefault()?.delta.content;
if (msg != null) richTextBox1.AppendText(msg);
}));
}
// 局部函数,订阅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 = "ep-20240704033659-vkfww", //以 endpoint_id 索引对应的模型接入点。接入点创建:模型推理->创建模型推理->复制ep-xxxxxxx-vkfww的模型ID
messages = new List<MessagesItem> {
new MessagesItem { role = ChatRoles.System, content = SysContent },
new MessagesItem { role = ChatRoles.User, content = textBox1.Text }
}
};
var chatRes = await _douYinDouBaoClient.ChatAsync(chatReq);
Console.WriteLine("聊天内容:" + chatRes.choices?.FirstOrDefault()?.message.content);
richTextBox1.Text = chatRes.choices?.FirstOrDefault()?.message.content;
}
catch (Exception ex)
{
Console.WriteLine("聊天失败:" + ex.Message);
}
}
}
}
C#示例
using Ohh.ChatAi.TotalApi.DouYinDouBao;
using Ohh.ChatAi.TotalApi.DouYinDouBao.Models;
using Ohh.ChatAi.TotalApi.DouYinDouBao.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 DouYinDouBaoExample : Form
{
/// <summary>
/// DouYinDouBao对象
/// </summary>
private DouYinDouBaoClient _douYinDouBaoClient;
/// <summary>
/// 系统角色设定
/// </summary>
private const string SysContent = "你是 抖音豆包 AI 提供的人工智能助手,你更擅长中文和英文的对话。你会为用户提供安全,有帮助,准确的回答。同时,你会拒绝一切涉及恐怖主义,种族歧视,黄色暴力等问题的回答。Moonshot AI 为专有名词,不可翻译成其他语言";
/// <summary>
/// 构造函数
/// </summary>
public DouYinDouBaoExample()
{
InitializeComponent();
//---------
_douYinDouBaoClient = new DouYinDouBaoClient("xxxxxxxxxxxxxxxxxxx");
}
private void DouYinDouBaoExample_Load(object sender, EventArgs e)
{
}
/// <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 = "ep-20240704033659-vkfww", //以 endpoint_id 索引对应的模型接入点。接入点创建:模型推理->创建模型推理->复制ep-xxxxxxx-vkfww的模型ID
messages = new List<MessagesItem> {
new MessagesItem { role = ChatRoles.System, content = SysContent },
new MessagesItem { role = ChatRoles.User, content = textBox1.Text }
},
stream = true
};
// 订阅事件
_douYinDouBaoClient.MessageReceivedEventHandler -= OnMessageReceived;
_douYinDouBaoClient.ErrorEventHandler -= OnErrorMsg;
_douYinDouBaoClient.MessageReceivedEventHandler += OnMessageReceived;
_douYinDouBaoClient.ErrorEventHandler += OnErrorMsg;
// 开始任务
await _douYinDouBaoClient.ChatStreamAsync(chatReq);
// 局部函数,订阅SSE 消息事件
void OnMessageReceived(object s, ChatResponse m)
{
//Console.WriteLine("聊天内容:" + ee);
Invoke(new Action(() =>
{
var msg = m.choices?.FirstOrDefault()?.delta.content;
if (msg != null) richTextBox1.AppendText(msg);
}));
}
// 局部函数,订阅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 = "ep-20240704033659-vkfww", //以 endpoint_id 索引对应的模型接入点。接入点创建:模型推理->创建模型推理->复制ep-xxxxxxx-vkfww的模型ID
messages = new List<MessagesItem> {
new MessagesItem { role = ChatRoles.System, content = SysContent },
new MessagesItem { role = ChatRoles.User, content = textBox1.Text }
}
};
var chatRes = await _douYinDouBaoClient.ChatAsync(chatReq);
Console.WriteLine("聊天内容:" + chatRes.choices?.FirstOrDefault()?.message.content);
richTextBox1.Text = chatRes.choices?.FirstOrDefault()?.message.content;
}
catch (Exception ex)
{
Console.WriteLine("聊天失败:" + ex.Message);
}
}
}
}
文章转自微信公众号@办公魔盒
热门推荐
一个账号试用1000+ API
助力AI无缝链接物理世界 · 无需多次注册
3000+提示词助力AI大模型
和专业工程师共享工作效率翻倍的秘密
热门API
- 1. AI文本生成
- 2. AI图片生成_文生图
- 3. AI图片生成_图生图
- 4. AI图像编辑
- 5. AI视频生成_文生视频
- 6. AI视频生成_图生视频
- 7. AI语音合成_文生语音
- 8. AI文本生成(中国)
最新文章
- 使用JWT和Lambda授权器保护AWS API网关:Clerk实践指南
- 宠物领养服务:如何帮流浪毛孩找到温馨的新家?
- Python调用IP地址归属地查询API教程
- Java API 开发:构建可重用的接口,简化系统集成
- Python 实现检测空气质量:实时监测城市空气污染指数
- 亚马逊礼品卡API全解析:企业激励与客户参与优化指南
- 地理实时地图:技术解析与现代应用实践
- Duolingo API 使用指南:语言学习与智能应用的融合实践
- 超级英雄尽在掌握:超级英雄数据API的超能力
- 了解API端点:初学者指南
- API版本控制:URL、标头、媒体类型版本控制
- Python 查询专利信息:轻松获取最新技术专利数据
热门推荐
一个账号试用1000+ API
助力AI无缝链接物理世界 · 无需多次注册