【大模型部署】在C# Winform中使用文心一言ERNIE-3.5 4K 聊天模型
【大模型部署】在C# Winform中使用文心一言ERNIE-3.5 4K 聊天模型
前言
今天来写一个简单的ernie-c#的例子,主要参考了百度智能云的例子,然后自己改了改,学习了ERNIE模型的鉴权方式,数据流的格式和简单的数据解析,实现了在C#中调用百度智能云的ernie(其实就是文心一言3.5的语言模型)的例子。
步骤
- 注册百度智能云
- 创建应用
- 开通ERNIE 3.5 4K模型的付费通道(似乎是免费的)
- 获取AK和SK
- 代码接入

步骤1-注册百度智能云
百度智能云
按提示注册即可
步骤2-创建应用
点击“应用接入” -> “创建应用”

按下图操作即可

步骤3-开通ERNIE 3.5 4K模型的付费通道
百度会送20元的优惠券,试用的话是免费的,如果要收费的话,请酌情开通

我的代金券

步骤4-获取AK和SK
在这里获取AK和SK,后面代码里面要用

代码接入
定义AK和SK
// 您的AccessKey ID
const string API_KEY = "qSXXXXXXXXXXXXXXXXQ";
// 您的AccessKey Secret
const string SECRET_KEY = "Kb8XXXXXXXXXXXXXXXXXX24ZH";
定义发送和回传的数据结构
public class Message
{[JsonProperty("role")]public string Role { get; set; }[JsonProperty("content")]public string Content { get; set; }
}public class ErnieMessage
{[JsonProperty("messages")]public Message[] Messages { get; set; }[JsonProperty("temperature")]public double Temperature { get; set; }[JsonProperty("top_p")]public double TopP { get; set; }[JsonProperty("penalty_score")]public double PenaltyScore { get; set; }[JsonProperty("disable_search")]public bool DisableSearch { get; set; }[JsonProperty("enable_citation")]public bool EnableCitation { get; set; }
}
ErnieMessage ernieMessage = new ErnieMessage();public class ChatCompletionResult
{[JsonProperty("id")]public string Id { get; set; }[JsonProperty("object")]public string ObjectType { get; set; } // 这里的属性名可以根据实际需求进行命名,例如避免与.NET的内置Object类冲突 [JsonProperty("created")]public long CreatedTimestamp { get; set; } // 通常时间戳会转换为DateTime,但这里保持为long [JsonProperty("result")]public string Result { get; set; }[JsonProperty("is_truncated")]public bool IsTruncated { get; set; }[JsonProperty("need_clear_history")]public bool NeedClearHistory { get; set; }[JsonProperty("finish_reason")]public string FinishReason { get; set; }[JsonProperty("usage")]public Usage UsageInfo { get; set; }// 嵌套类来表示Usage对象 public class Usage{[JsonProperty("prompt_tokens")]public int PromptTokens { get; set; }[JsonProperty("completion_tokens")]public int CompletionTokens { get; set; }[JsonProperty("total_tokens")]public int TotalTokens { get; set; }}
}
定义消息池
// 定义消息池
public class MessagePool
{public List<Message> Messages { get; set; }public MessagePool(){Messages = new List<Message>();}public void AddMessage(Message message){Messages.Add(message);}public void ClearMessages(){Messages.Clear();}
}
定义角色
enum eRole { User, Assistant}
string Role(eRole role)
{return role == eRole.User ? "user" : "assistant";
}
定义聊天函数
private string Chat(string strSend, eRole role)
{var client = new RestClient($"https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/ernie-3.5-4k-0205?access_token={GetAccessTokenMethod()}");client.Timeout = -1;var request = new RestRequest(Method.POST);request.AddHeader("Content-Type", "application/json");AddMessageToPool(strSend, role);var body = JsonConvert.SerializeObject(ernieMessage, Formatting.None);request.AddParameter("application/json", body, ParameterType.RequestBody);IRestResponse response = client.Execute(request);AddMessageToPool(response.Content, eRole.Assistant);ChatCompletionResult result = JsonConvert.DeserializeObject<ChatCompletionResult>(response.Content);FillCompletionInfo(result);if (result.NeedClearHistory) ClearHistoryMethod();return result.Result;
}
完整代码
完整代码
相关文章:
【大模型部署】在C# Winform中使用文心一言ERNIE-3.5 4K 聊天模型
【大模型部署】在C# Winform中使用文心一言ERNIE-3.5 4K 聊天模型 前言 今天来写一个简单的ernie-c#的例子,主要参考了百度智能云的例子,然后自己改了改,学习了ERNIE模型的鉴权方式,数据流的格式和简单的数据解析,实…...
【Unity】Unity项目转抖音小游戏(三)资源分包,抖音云CDN
业务需求,开始接触一下抖音小游戏相关的内容,开发过程中记录一下流程。 使用资源分包可以优化游戏启动速度,是抖音小游戏推荐的一种方式,抖音云也提供存放资源的CDN服务 抖音云官方文档:https://developer.open-douyi…...
SQLite查询优化
文章目录 1. 引言2. WHERE子句分析2.1. 索引项使用示例 3. BETWEEN优化4. OR优化4.1. 将OR连接的约束转换为IN运算符4.2. 分别评估OR约束并取结果的并集 5. LIKE优化6. 跳跃扫描优化7. 连接7.1. 手动控制连接顺序7.1.1. 使用 SQLITE_STAT 表手动控制查询计划7.1.2. 使用 CROSS …...
UE4编辑器End键Actor贴近地面
void UXXXEditorFunctionLibrary::SnapToFloor(AActor* Actor) { if (Actor) { Actor->Modify(); GEditor->SnapObjectTo(FActorOrComponent(Actor), false, false, false, false); Actor->InvalidateLightingCache(); Actor->UpdateComponentTransforms(); } }...
2024儿科常用心理评估量表汇总,附详细操作步骤与评定标准
在社会的快速发展以及家庭教育模式的转变下,儿童心理健康问题正逐步成为公众瞩目的焦点。焦虑症、抑郁症、适应障碍等儿科常见的症状,不仅对孩子的身心健康构成威胁,更可能在他们的学习旅程和社交互动中制造重重障碍。 儿科医师常用评估量表…...
Python 脚本化 Git 操作:简单、高效、无压力
前言 如何判定此次测试是否达标,代码覆盖率是衡量的标准之一。前段时间,利用fastapi框架重写了覆盖率统计服务,核心其实就是先获取全量代码覆盖率,然后通过diff操作统计增量代码覆盖率,当然要使用diff操作,…...
手搓顺序表(C语言)
目录 SeqList.h SeqList.c 头插尾插复用任意位置插入 头删尾删复用任意位置删除 SLtest.c 测试示例 顺序表优劣分析 SeqList.h //SeqList.h#pragma once#include <stdio.h> #include <assert.h> #include <stdlib.h> #define IN_CY 3typedef int S…...
一文搞懂oracle事务提交以及脏数据落盘的原则
本文基于oracle 19c 做事务提交以及oracle脏数据落盘的相关解读 第一章 相关进程及组件介绍: 1.LGWR: 重做日志条目在系统全局区域 (SGA) 的重做日志缓冲区中生成。LGWR 按顺序将重做日志条目写入重做日志文件。如果数据库具有…...
OceanBase:列存储
目录 1、列存储的定义 1、默认创建列存表 3、指定创建列存表 4、指定创建列存行存冗余表 5、行、列存储查询测试 1、列存储的定义 行存储(Row-based Storage):行存储是以行为单位进行组织和存储数据。在这一模式下,数据库将…...
Rust:WIndows 环境下交叉编译 Linux 平台程序
在Windows下交叉编译Rust程序以在x86_64位的CentOS操作系统上运行,你需要遵循几个步骤来设置交叉编译环境并编译你的程序。以下是一个大致的指南: 1. 安装Rust和Cargo 首先,确保你已经在Windows上安装了Rust和Cargo。你可以从Rust官方网站下…...
从零学爬虫:使用比如说说解析网页结构
新书上架~👇全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目录 一、引言 二、网页结构概述 示例:查看网页结构 三、使用比如说说解析网页 1.…...
C#数据类型变量、常量
一个变量只不过是一个供程序操作的存储区的名字。 在 C# 中,变量是用于存储和表示数据的标识符,在声明变量时,您需要指定变量的类型,并且可以选择性地为其分配一个初始值。 在 C# 中,每个变量都有一个特定的类型&…...
Java高级面试问题及答案
Java高级面试问题及答案 问题1: 请描述Java内存模型(JMM)及其在并发编程中的重要性。 探讨过程: 在并发编程中,多个线程之间如何协调对共享变量的访问是一个核心问题。Java内存模型定义了一组规则,来确保在多线程环境中对共享变量的修改能够…...
出现 Transaction rolled back because it has been marked as rollback-only 解决方法
目录 1. 问题所示2. 原理分析3. 解决方法1. 问题所示 用户反馈的Bug如下所示: Transaction rolled back because it has been marked as rollback-only截图如下: 浏览器终端同样显示: 2. 原理分析 错误表明,在事务的生命周期内,遇到了某个异常或条件,导致该事务被标记…...
数据结构算法题day03
数据结构算法题day03 题目 题目 2.设计一个高效算法,将顺序表L的所有元素逆置,要求算法的空间复杂度为O(1)算法思想: 1、常规的解法: Void reverse (sqlist &L){Elemtype temp; //辅助变量for(i 0,i < L.length; i){temp…...
深入分析C#中的“编写器”概念——代码修改、注解与重构
文章目录 1. 编写器(Writer)的概念2. 编写器的作用和工作原理3. 编写器的重要性4. 写入器常用方法5. 写入器示例6. 编写器示例——使用Fody进行代码注解和重构7. 总结 在软件开发过程中,代码的维护和更新是至关重要的。C#作为一种流行的编程语…...
uview1.0 u-form表单回显校验不通过
提交到后端的数据,回显后不做任何修改无法通过表单校验 原因,u-form表单校验的类型默认为string,但是后端返回的是integer类型,导致无法通过校验 解决,既然后端返回的是整数形,那么我们就将校验规则的type…...
监控员工电脑的软件有哪些,不得不说这几款电脑监控软件太好用了
监控员工电脑的软件在市场上种类繁多,以下是几款备受好评的电脑监控软件,它们各自具有独特的功能和优势,选择前必须了解一下才能做成正确决定。 1.安企神: 这款软件支持7天试用测试,获取测试版请移驾 ↓↓↓ 安企神…...
【MySQL精通之路】索引优化(2)
目录 1 MySQL如何使用索引 2 主键优化 3 空间索引优化 4 外键优化 5 列索引 6 多列索引 7 验证索引使用情况 8 InnoDB和MyISAM索引统计集合 9 B树索引与哈希索引的比较 9.1 B-树索引特征 9.2 哈希索引特征 10 索引扩展的使用 11 优化器使用生成的列索引 12 不可见…...
VUE3 学习笔记(5):数组处理、计算属性与函数、class与Style绑定
数组监测处理方法 VUE 提供了关于数组处理的直接方法,但并非全部都是可以处理的 如下可以直接处理: .push --向数组中增加 .pop --从数组中最后减去一个元素 .shift --从数组中第一个减去一个元素 .unshift --在数组中的头部添加一个元素 .splice --自定…...
写给前端的 CANN-ops-fft:昇腾FFT算子库到底是啥?
写给前端的 CANN-ops-fft:昇腾FFT算子库到底是啥? 之前做信号处理,兄弟问我:“哥,我想做频域分析,昇腾上有现成的 FFT 库吗?” 好问题。今天一次说清楚。 ops-fft 是啥? ops-fft Op…...
HS2-HF Patch:如何用5分钟为HoneySelect2实现完整汉化与MOD整合
HS2-HF Patch:如何用5分钟为HoneySelect2实现完整汉化与MOD整合 【免费下载链接】HS2-HF_Patch Automatically translate, uncensor and update HoneySelect2! 项目地址: https://gitcode.com/gh_mirrors/hs/HS2-HF_Patch HS2-HF Patch是HoneySelect2玩家的终…...
【限时解密】ElevenLabs未公开的马来文SSML扩展语法:支持“Johor-Riau变体”、“Kedah重音标记”及连读停顿控制
更多请点击: https://intelliparadigm.com 第一章:ElevenLabs马来文语音合成的技术演进与本地化挑战 ElevenLabs自2022年推出多语言TTS服务以来,持续扩展其语音模型对东南亚语言的支持能力。马来文(Bahasa Melayu)作为…...
QGIS连接天地图最新指南:搞定Token和Header,解决加载失败问题
QGIS连接天地图最新指南:搞定Token和Header,解决加载失败问题 天地图作为国内权威的地理信息服务,在QGIS中的集成使用一直是GIS从业者的高频需求。但最近不少用户反馈,按照网上流传的旧教程配置后,天地图服务在QGIS中…...
收藏!程序员转AI工程师的3条死路+3条真路(内含2026年最新就业方向)
本文揭示了2026年程序员转AI工程师的3条死路和3条真路。死路包括从零学ML训练想做研究员、靠Prompt工程当主修、装AI App做评测自媒体,这些路径因入门方向被误导而难以成功。真路则包括用现有领域跳板转AI应用工程、AI Infra/MLOps方向、AI Agent工程师方向…...
焊接风管制造技术前沿:厂家工艺揭秘
在现代工业与建筑领域,焊接风管扮演着至关重要的角色。从工业厂房的通风换气,到商业建筑的空气调节,焊接风管都起着保障空气流通、维持环境舒适的关键作用。其质量的优劣直接影响到整个通风系统的性能和使用寿命。优质的焊接风管不仅能有效降…...
Taotoken 稳定直连全球大模型在高峰期业务中的实际表现
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 Taotoken 稳定直连全球大模型在高峰期业务中的实际表现 在需要持续、稳定调用大模型能力的业务场景中,服务的可靠性是核…...
在骁龙 X2 Elite 上安装 Hermes Agent(1): 硬件规格和安装准备
系列导读 为什么 骁龙Snapdragon X2 Elite 是 Hermes Agent 的最佳搭档?本文是《在骁龙 X2 Elite 上安装 Hermes Agent》系列的第一篇。你将了解 骁龙 X2 Elite 的强大硬件规格、Hermes Agent 的核心能力,以及安装前的准备工作。 一、为什么选择骁龙 X2 …...
欧姆龙G9SP安全控制系统中,如何通过NB触摸屏实现远程复位与状态监控?
欧姆龙G9SP安全控制系统与NB触摸屏的深度集成:远程复位与状态监控实战指南 在工业自动化领域,安全控制系统的可靠性与操作便捷性同样重要。欧姆龙G9SP作为专业的安全控制器,与NB系列触摸屏的协同工作,能够为生产线提供既安全又高…...
终极OpenHTMLtoPDF教程:5分钟构建专业PDF生成器
终极OpenHTMLtoPDF教程:5分钟构建专业PDF生成器 【免费下载链接】openhtmltopdf An HTML to PDF library for the JVM. Based on Flying Saucer and Apache PDF-BOX 2. With SVG image support. Now also with accessible PDF support (WCAG, Section 508, PDF/UA)!…...
