基于C#调用文心一言大模型制作桌面软件(可改装接口)

目录

开发前的准备

账号注册

访问百度智能云平台,通过百度账号登录或手机号验证。
点此跳转百度智能云平台

应用创建

登录成功后看到的是一个控制台总览的页面,在页面上方文本框搜索千帆大模型,点击跳转。

应用接入

左侧点击应用接入,并在该页完成应用创建。

在应用配置这一项,可以勾选全部服务。

这里保留好API Key 和 Secret Key两个凭证,后面开发的时候用得上。

开始开发

创建项目

通过vs创建Windows窗体应用。

设计界面

在form界面,打开工具箱,这里用默认的控件就可以实现。

label、textBox、button、richTextBox。

使用 AK,SK 生成鉴权签名

通过NuGet包管理器安装RestSharp包,我这里的版本是106.2.0,该包用于发送https请求。

dart 复制代码
 /**
          * 使用 AK,SK 生成鉴权签名(Access Token)
          * @return 鉴权签名信息(Access Token)
        */
        public static string GetAccessToken(string API_KEY,string SECRET_KEY)
        {
            var url = "https://aip.baidubce.com/oauth/2.0/token";
            var client = new RestClient(url);
            client.Timeout = -1;
            var request = new RestRequest(Method.POST);
            request.AddParameter("grant_type", "client_credentials");
            request.AddParameter("client_id", API_KEY);
            request.AddParameter("client_secret", SECRET_KEY);
            IRestResponse response = client.Execute(request);
            var result = JsonConvert.DeserializeObject<dynamic>(response.Content);
            return result.access_token.ToString();
        }

窗体代码

dart 复制代码
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;
using Newtonsoft.Json;
using RestSharp;

namespace WindowsFormsApp2
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
        }

        public static string GetChat(string accessToken, string userId, List<ChatDTO> messages)
        {
            ChatParam ChatReq = new ChatParam
            {
                user_id = userId,
                messages = messages,
                temperature = 0.95,
                top_p = 0.8,
                penalty_score = 1,
                disable_search = false,
                enable_citation = false,
                stream = false
            };
            var url = $"https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/ernie-speed-128k?access_token={accessToken}";
            var client = new RestClient(url);
            client.Timeout = -1;
            var request = new RestRequest(Method.POST);
            request.AddHeader("Content-Type", "application/json");
            var body = JsonConvert.SerializeObject(ChatReq);
            request.AddParameter("application/json", body, ParameterType.RequestBody);
            IRestResponse response = client.Execute(request);
            return response.Content;
        }

        /**
          * 使用 AK,SK 生成鉴权签名(Access Token)
          * @return 鉴权签名信息(Access Token)
        */
        public static string GetAccessToken(string API_KEY,string SECRET_KEY)
        {
            var url = "https://aip.baidubce.com/oauth/2.0/token";
            var client = new RestClient(url);
            client.Timeout = -1;
            var request = new RestRequest(Method.POST);
            request.AddParameter("grant_type", "client_credentials");
            request.AddParameter("client_id", API_KEY);
            request.AddParameter("client_secret", SECRET_KEY);
            IRestResponse response = client.Execute(request);
            var result = JsonConvert.DeserializeObject<dynamic>(response.Content);
            return result.access_token.ToString();
        }

       

        /// <summary>
        /// 点击发送
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnSend_Click(object sender, EventArgs e)
        {
            label5.Text = "发送请求中...";
            var token = GetAccessToken(this.textBox1.Text,this.textBox2.Text);
            List<ChatDTO> messages = new List<ChatDTO>();
            string sayWord = richTextBox1.Text;
            messages.Add(new ChatDTO { role = "user", content = sayWord });
            if (string.IsNullOrEmpty(sayWord))
            {
                MessageBox.Show("说点什么");
                richTextBox1.Focus();
                return;
            }
            if (richTextBox2.Text != "")
            {
                richTextBox2.AppendText("\r\n");
            }
            richTextBox2.AppendText("用户: " + sayWord + "\r\n");
            var chatMsg = GetChat(token, "key00258521", messages);
            ChatCompletionResponse response = JsonConvert.DeserializeObject<ChatCompletionResponse>(chatMsg);
            richTextBox2.SelectionColor = Color.Red;
            richTextBox2.AppendText("文心一言: " + response.Result);
            label5.Text = "请求完成。";
            richTextBox1.Clear();
        }
        /// <summary>
        /// 点击清空
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button2_Click(object sender, EventArgs e)
        {
            richTextBox1.Clear();
            richTextBox2.Clear();
        }
    }
}

百度智能云千帆大模型平台

什么是百度智能云千帆大模型平台

产品定义:

百度智能云千帆大模型平台(以下简称千帆或千帆大模型平台)是面向企业开发者的一站式大模型开发及服务运行平台。千帆不仅提供了包括文心一言底层模型和第三方开源大模型,还提供了各种AI开发工具和整套开发环境,方便客户轻松使用和开发大模型应用。

支持数据管理、自动化模型SFT以及推理服务云端部署的一站式大模型定制服务,助力各行业的生成式AI应用需求落地。

应用场景:

面向不同的企业需求,千帆提供不同的功能服务。

例如,智能对话、智能输入法等通用应用场景,可在千帆直接体验文心一言企业级推理云服务,并进行业务集成;

细分领域电销场景的商品介绍、推广文章等需要对推理结果进行定制调整,则可在文心千帆使用模型在线微调训练功能,快速生成行业场景定制模型服务,满足用户特定需求。

  • 场景一:对话沟通
    匹配场景:智能营销、智能客服、情感沟通等需要沟通对话的场景。
    在实际生活中,针对用户需求提供快速应答,精准匹配用户需求,完成营销商拓、及时响应、正向心理辅导等内容,提升客户体验。

具体案例:针对用户需求,输出结果。例如,用户需要平台帮忙推荐一下四大名著,如下图所示:

  • 场景二:内容创作
    匹配场景:剧本、故事、诗歌等文本创作场景。
    根据用户的需求,生成精准匹配的创作文本,为用户提供视频编排的剧本来源;润色成型的故事、诗歌等文本内容,给用户创造提升文本能力的文化环境。

具体案例:用户下发自定义指令,创作成型的文本内容。例如,用户需要平台按要求写一首藏头诗,如下图所示:

  • 场景三:分析控制
    匹配场景:所谓分析控制是包含代码生成、数据报表、内容分析等深度学习的文本场景。
    根据用户的需求快速生成可执行的代码,或者平台结合自身已具备的多种数据,生成匹配度更高的其他应答内容。

具体案例:用户临时遇到需处理的问题,平台生成解决方案。例如,开发工程师利用平台生成具体代码,完成代码的优化,如下图所示:

模型更新记录

日期 模型 模型名称 模型版本 模型类型 动态说明 介绍及调用
8月2日 百度 ERNIE-Novel-8K ERNIE-Novel-8K 对话Chat 上新 百度自研通用大语言模型,在小说续写能力上有明显优势,也可用在短剧、电影等场景。2024年8月2日首次发布的版本,百度自研通用大语言模型,在小说续写能力上有明显优势,也可用在短剧、电影等场景。
相关推荐
向宇it6 小时前
【unity小技巧】unity 什么是反射?反射的作用?反射的使用场景?反射的缺点?常用的反射操作?反射常见示例
开发语言·游戏·unity·c#·游戏引擎
九鼎科技-Leo7 小时前
什么是 WPF 中的依赖属性?有什么作用?
windows·c#·.net·wpf
Heaphaestus,RC8 小时前
【Unity3D】获取 GameObject 的完整层级结构
unity·c#
baivfhpwxf20238 小时前
C# 5000 转16进制 字节(激光器串口通讯生成指定格式命令)
开发语言·c#
直裾8 小时前
Scala全文单词统计
开发语言·c#·scala
ZwaterZ9 小时前
vue el-table表格点击某行触发事件&&操作栏点击和row-click冲突问题
前端·vue.js·elementui·c#·vue
老艾的AI世界10 小时前
AI翻唱神器,一键用你喜欢的歌手翻唱他人的曲目(附下载链接)
人工智能·深度学习·神经网络·机器学习·ai·ai翻唱·ai唱歌·ai歌曲
ZwaterZ12 小时前
el-table-column自动生成序号&&在序号前插入图标
前端·javascript·c#·vue
SRC_BLUE_1714 小时前
SQLI LABS | Less-55 GET-Challenge-Union-14 Queries Allowed-Variation 2
oracle·c#·less
yngsqq15 小时前
037集——JoinEntities连接多段线polyline和圆弧arc(CAD—C#二次开发入门)
开发语言·c#·swift