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

news2024/11/16 9:19:19

目录

  • 开发前的准备
    • 账号注册
    • 应用创建
    • 应用接入
  • 开始开发
    • 创建项目
    • 设计界面
    • 使用 AK,SK 生成鉴权签名
    • 窗体代码
  • 百度智能云千帆大模型平台
    • 什么是百度智能云千帆大模型平台
    • 模型更新记录

开发前的准备

账号注册

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

在这里插入图片描述

应用创建

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

在这里插入图片描述

应用接入

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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

开始开发

创建项目

通过vs创建Windows窗体应用。

在这里插入图片描述

设计界面

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

在这里插入图片描述

使用 AK,SK 生成鉴权签名

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

在这里插入图片描述

 /**
          * 使用 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();
        }

窗体代码

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-8KERNIE-Novel-8K对话Chat上新百度自研通用大语言模型,在小说续写能力上有明显优势,也可用在短剧、电影等场景。2024年8月2日首次发布的版本,百度自研通用大语言模型,在小说续写能力上有明显优势,也可用在短剧、电影等场景。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1984164.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

边缘计算在智能交通系统中的应用探究

随着社会的进步和科技的不断发展&#xff0c;智能交通系统正逐渐成为现代城市交通管理的重要组成部分。边缘计算作为一种新兴的计算模式&#xff0c;被广泛应用于智能交通系统中&#xff0c;为其带来了巨大的变革和改进。本文将从边缘计算的原理、优势以及在智能交通系统中的应…

61监听器

监听器 概念 监听器用于监听web应用中某些对象信息的创建、销毁、增加&#xff0c;修改&#xff0c;删除等动作的 发生&#xff0c;然后作出相应的响应处理。当范围对象的状态发生变化的时候&#xff0c;服务器自动调用 监听器对象中的方法。 常用于统计在线人数和在线用户&am…

Hbase 综合实验

1、设计表保存通话记录信息&#xff0c;实现相关查询功能 创建ua50tel表&#xff0c;并插入数据&#xff08;实训报告中‘&#xff1a;’存在于表中但会识别为语法所以在此不使用&#xff09; 依次重复上面的过程按实际输入&#xff0c;并查看表的内容 查询某人当月通话记录 …

内网电脑如何通过外网IP访问内网的服务器

内网的电脑&#xff0c;如何使用公网IP访问内网的服务器&#xff1f;写下这个标题&#xff0c;连我自己都学得拗口&#xff0c;可是又想不到更合适的标题。 正常来说&#xff0c;内网的电脑访问内网的服务器&#xff0c;当然是使用服务器的内网IP地址和端口&#xff0c;比如说&…

建立的Qsys系统变成Symbol Files

1.Platform Designer下&#xff0c;点击Generate 2.

C++数组全面讲解

文章目录 数组介绍数组的特点数组的优缺点数组和其他数据结构的比较 静态数组与动态数组的详细讲解一、静态数组1. 一维数组声明与初始化注意事项特点 2. 二维数组声明与初始化注意事项特点 3. 三维数组声明与初始化注意事项特点 二、动态数组1. 一维数组声明与初始化注意事项特…

HarmonyOS鸿蒙开发学习:鸿蒙基础-基础环境-ArkTS-组件-样式

鸿蒙基础-基础环境-ArkTS-组件-样式 DevEcoStudio编辑器下载链接 链接: https://pan.baidu.com/s/18C9i35YPh4GsHpbSif8KQw?pwdd6e9 提取码: d6e9 安装教程 下载对应的版本 windowsmac英特尔mac Arm API12 的编辑器 API12的模拟器(mac英特尔安装API11) Mac Arm芯片版本安装…

CCPC 2024, Shanghai

2024.8.5 12:00————17:00 CCPC 2024, Shanghai [A - 无线网络整点栅格统计](https://atcoder.jp/contests/math-and-algorithm/tasks/abc204_d?langen)[E - 无线软件日](https://atcoder.jp/contests/abc265/tasks/abc265_a?langen)[J - 极简合数序列](https://atcoder.…

【面试题】合井K个升序链表

合井K个升序链表 仅供面试学习 给定一个链表数组&#xff0c;每个链表都已经按升序排列。将所有链表合并到一个升序链表中&#xff0c;并返回合并后的链表。以下是详细的解题步骤和 Python 代码示例。 一、问题描述 将多个升序链表合并为一个升序链表。要求算法能有效处理链表…

Codeforces Round 871 (Div. 4)(A~H)

比赛链接 Dashboard - Codeforces Round 871 (Div. 4) - Codeforces A. Love Story 找到与codeforces 有多少个不同的字符。 #include<bits/stdc.h> #define int long long #define TEST int T; cin >> T; while (T--) #define ios ios::sync_with_stdio(fals…

人大金仓安装图文

1.下载 通过百度网盘分享的文件&#xff1a;人大金仓安装图文 链接&#xff1a;https://pan.baidu.com/s/1imt0KsyVXQALp_icEMoDpQ 提取码&#xff1a;zwef --来自百度网盘超级会员V3的分享 2.安装

CTFHub~RCE远程代码执行

0X01eval执行 # 进来我们直接看到了代码&#xff0c;大致意思就是传入一个参数cmd# 所以我们直接使用蚁剑进行连接&#xff0c;看一下能否成功# 接下来我们直接找出flag0X02文件包含 # 打开页面发现一大堆代码 大体意思是如果file中没有flag字符串就执行下面的include $_GET[…

【linux深入剖析】线程控制 | 多线程

&#x1f341;你好&#xff0c;我是 RO-BERRY &#x1f4d7; 致力于C、C、数据结构、TCP/IP、数据库等等一系列知识 &#x1f384;感谢你的陪伴与支持 &#xff0c;故事既有了开头&#xff0c;就要画上一个完美的句号&#xff0c;让我们一起加油 目录 1. 创建线程2. POSIX线程…

基于Kubernetes v1.25.0和Docker部署高可用集群(说明篇)

目录描述 Kubernetes组件说明 特定接口CRI、CNI、CSI Kubernetes v1.25集群创建方案选择 一、Kubernetes组件说明 Docker 的运行机制 运行机制详解&#xff1a; docker client&#xff1a;命令行输入的docker命令就是一个docker客户端 docker Engine&#xff1a;Engine也…

Java: 死锁问题详解(5000字)

文章目录 死锁的出现场景1. 一个线程一把锁,这个线程针对这把锁,连续加锁了两次2. 两个线程,两把锁3. N个线程 , M个锁4. 内存可见性为什么会出现内存可见性问题呢?解决方法 volatile关键字 总结synchronized:死锁的四个必要条件(缺一不可)[重点]:内存可见性问题: 死锁的出现场…

PCL安装与配置(PCL1.9.1+MSVC2017)

为了和我的VS的版本VS 2017对应&#xff0c;PCL下载的也是msvc_2017,PCL msvc2017最新的则是1.901版本&#xff0c;我们就以PCL 1.9.1为例了。&#xff08;如果你的vs是2019和2022&#xff0c;一定要注意PCL的版本&#xff09;。 一、下载PCL 我们打开PCL的github下载地址&am…

GDB调试器

GDB调试器 GDB的主要功能 常见命令 3、实战 1、生成能调试的执行文件&#xff08;一定要加-g&#xff09; 第一个是不能调试的 第二个这样加了-g才能进行调试 如果没加-g 执行gdb 执行文件&#xff08;会报下面这个 &#xff09; 像这样才是正常的 执行 gdb a_yes_g 这…

SSM计算机组成原理课程平台-计算机毕设定制-附项目源码(可白嫖)50168

摘 要 21世纪的今天&#xff0c;随着社会的不断发展与进步&#xff0c;人们对于信息科学化的认识&#xff0c;已由低层次向高层次发展&#xff0c;由原来的感性认识向理性认识提高&#xff0c;管理工作的重要性已逐渐被人们所认识&#xff0c;科学化的管理&#xff0c;使信息存…

金融行业到底该选择什么样的FTP替代方案?

2018年以来&#xff0c;受“华为、中兴事件”影响&#xff0c;我国科技尤其是上游核心技术受制于人的现状对我 国经济发展提出了严峻考验。在全球产业从工业经济向数字经济升级的关键时期&#xff0c;中国明确 “数字中国”建设战略&#xff0c; 抢占数字经济产业链制高点。 在…

Python开发工具PyCharm入门指南 - 用户界面主题更改

JetBrains PyCharm是一种Python IDE&#xff0c;其带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具。此外&#xff0c;该IDE提供了一些高级功能&#xff0c;以用于Django框架下的专业Web开发。 界面主题定义了窗口、对话框、按钮和用户界面的所有可视元素的外观…