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/10993202.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文本生成(中国)
最新文章
- 9个最佳Text2Sql开源项目:自然语言到SQL的高效转换工具
- 深入解析API网关策略:认证、授权、安全、流量处理与可观测性
- GraphQL API手册:如何构建、测试、使用和记录
- 自助式入职培训服务API:如何让企业管理更上一层楼?
- Python如何调用Jenkins API自动化发布
- 模型压缩四剑客:量化、剪枝、蒸馏、二值化
- 火山引擎如何接入API:从入门到实践的技术指南
- 为什么每个使用 API 的大型企业都需要一个 API 市场来增强其合作伙伴生态系统
- 构建更优质的API:2025年顶级API开发工具推荐 – Strapi
- 外部函数与内存API – Java 22 – 未记录
- FAPI 2.0 深度解析:下一代金融级 API 安全标准与实践指南
- .NET Core 下的 API 网关
热门推荐
                            一个账号试用1000+ API
                                助力AI无缝链接物理世界 · 无需多次注册