- 博客(44)
- 收藏
- 关注
原创 C#调用 AI学习从0开始-第3阶段RAG向量数据库-文档切分与入库第15天
学习目标:将长文档切分成小块,生成向量并存入Qdrant,为RAG问答做准备。
2026-07-22 22:41:51
320
原创 C#调用 AI学习从0开始-第3阶段RAG-Embedding文本向量化第14天
2.API_URL:注意看你的api key是国内版还是国外版,国内版这里配置国内版api_url,国外版就要配置国外版的api_url,不匹配的话就会调用报错,sk-xxx 格式的 API Key 是 阿里云国内版 (百炼平台)的密钥格式。1.API_KEY:此处的api key是阿里云百炼的 API KEY而不是上一节注册的Qdrant cloud api key.Embedding就是把文字转换为一串数字,即从自然语言转换为电脑可理解的语言。让计算机能"理解"语义,而不仅仅是匹配关键词。
2026-07-22 14:37:33
294
原创 C#调用 AI学习从0开始-第3阶段RAG-Qdrant向量数据库第13天
嵌入模型”(Embedding Model):你可以把它理解成一个“高级翻译官”。它的工作,就是把我们人类能看懂的文字(比如“今天天气真好”),翻译成计算机能听懂并计算的数字。“向量维度”(Vector Size):这个翻译官翻译出来的数字,不是一两个,而是一长串数组。这串数组的长度,就是“维度”。│ └── payload(元数据,如{ “text”: “文档内容” })【2】选择 “Free Tier”(免费套餐:1GB存储,1个集群)│ └── Points(点,类似SQL中的行)
2026-07-20 23:00:31
288
原创 C#调用 AI学习从0开始-第3阶段RAG向量数据库-第12天
就是让大模型先查资料,再在查出来的资料的基础上回答问题,即检索-增强-生成。计算机不理解"语义",但能计算数字之间的距离。向量的核心操作就是计算两个向量的余弦相似度。余弦相似度是衡量两个向量方向是否一致的指标。实时知识更新:不用重新训练,更新知识库即可。解决幻觉问题:让AI基于事实回答,不编造。私有数据利用:让AI学习公司的内部文档。向量就是把文本转换为数字数组。1.RAG向量数据库是什么?核心概念:什么是余弦相似度?2.为什么需要RAG?5.RAG质量关键因素。4.为什么需要向量?
2026-07-02 00:18:56
817
1
原创 C#调用 AI学习从0开始-第2阶段(Function Calling+工具调用智能体)-第11天实战-实现天气工具+混合调用
【3】添加Key并选择“Web服务”:进入刚创建的应用,点击“添加Key”。在弹出的对话框里,最关键的步骤是服务平台一定要选择“Web服务”(不是Web端JS API)。【2】进入控制台创建应用:登录后进入“控制台”,在左侧菜单找到“应用管理” -> “我的应用”。点击右上角的“创建新应用”,给你的应用起个名字(比如“我的AI助手”),选择好应用类型,然后提交。别选错平台:申请时,服务平台务必选“Web服务”。【4】获取你的Key:添加成功后,你就能在应用详情里看到生成的Key字符串了,复制保存好就行。
2026-06-24 23:31:40
319
原创 C#调用 AI学习从0开始-第2阶段(Function Calling+工具调用智能体)-第10天实战-实现计算器工具
Q1 问题:需要支持更复杂的数学函数(sin、cos、sqrt)原因:用户输入了中文符号(×、÷)或其他特殊字符。Q2 问题:计算错误:表达式包含不支持的字符。解决:使用 NCalc 库,支持更多函数。以上,计算器工具实现完成!
2026-06-08 20:30:59
269
原创 C#调用 AI学习从0开始-第2阶段(Function Calling+工具调用智能体)-第9天实战
解决方法:明确设置提示词:"你是一个智能助手。当用户询问时间、日期时,必须调用 get_current_time 函数获取真实时间,不要自己编造。解决:确保description让AI能准确理解什么时候该调用。Q1:第1次请求没有返回tool_calls,而是直接回答了?原因:说明AI认为自己可以直接回答时间问题,不需要调用工具。原因:AI认为不需要调用工具(比如用户没问时间)解决:正常情况,直接返回AI的回答即可。Q3:第2次请求后AI还是返回工具调用?Q4:第一次调用AI直接输出了错误的时间。
2026-06-05 19:10:18
317
原创 C#调用 AI学习从0开始-第2阶段(Function Calling+工具调用智能体)-第8天Function Calling原理
2次,第一次让ai理解问题 ,然后返回需要调用哪个方法;调用方法后,第二次调用AI把方法返回的结果传给AI ,AI组织语言输出答案。当用户提出一个问题时,让AI能识别和理解这个问题并且输出一个指令,告诉程序该调用哪个函数、传入什么参数。Function Calling 的本质就是:你需要提前把所有可能被调用的函数都实现好。表格中,AI不能做的部分,就需要开发人员自己写函数,供AI调用实现。第二次:把方法结果传给AI → AI组织语言输出答案。第一次:AI理解问题 → 决定调用哪个方法。因为AI的能力边界。
2026-05-28 19:50:30
225
原创 C#调用 AI学习从0开始-第1阶段(基础与工具)-第7天多轮对话记忆
总结:多轮对话记忆 = 用 List 保存所有对话,每次请求都传给API,以达到有记忆的效果。
2026-05-27 19:49:16
177
原创 C#调用 AI学习从0开始-第1阶段(基础与工具)-第6天流式输出
【1】流式输出时控制台卡顿:原因:Console.Write 默认有缓冲区,不会立即刷新。就是让AI的回答一个字一个字地显示出来,而不是等全部生成完再一次性显示。ResponseHeadersRead:收到响应头就返回,边读边处理, 适用流式输出。ResponseContentRead:等全部内容读完才返回,不适用流式输出。【3】 最后一块内容是 data: [DONE]流式响应用的是 delta,不是 message。【2】如何处理网络中断:增加超时和重试。【2】 每块之间两个换行符:\n\n。
2026-05-20 19:49:19
192
原创 C#调用 AI学习从0开始-第1阶段(基础与工具)-第5天完善请求结构
【1】temperature 0.2-0.4:回答简短、保守、确定性强 0.7-0.9:回答详细、有创意、多样性高 ,推荐场景:事实问答用0.3,创意生成用0.8。【3】model选择 qwen-turbo:速度快,成本低 qwen-plus:质量高,推荐场景:实时对话用turbo,复杂任务用plus。【2】max_tokens 50-100:回答非常简短 500+:回答详细完整,推荐场景:预览场景用小值,完整回答用大值。{ role: “system”, content: “你是一个C#编程助手” },
2026-05-18 20:26:28
197
原创 C#调用 AI学习从0开始-第1阶段(基础与工具)-第4天CoT思维链学习
在提示词里加魔法词:Let’s think step by step,问题 + “Let’s think step by step” → 触发推理模式。逻辑题: “Let’s reason through this logically”数学题: “Let’s solve this step by step”代码题: “Let’s debug this step by step”通用: “Let’s think step by step”1.什么是CoT思维链?
2026-05-16 18:06:20
144
原创 C#调用 AI学习从0开始-第1阶段(基础与工具)-第3天FewShot少样本测试
****返回得不是Json,原因没有强制要求,可添加response_format参数,设置此参数后,输入必须带有json字样,否则调API报错。Few-Shot也就是在提词中写的几个示例或者样本,让AI理解你想要得格式和输出风格,然后应用到新的输出上。*****输出格式不一致,原因temperature太高,设temperature=0.1。*****分类错误率高,原因示例不够典型,更换更典型得示例。*****响应太慢,原因样本太多,控制示例数量在3-5个。2.为什么需要Few-Shot。
2026-05-15 19:26:19
99
原创 C#调用 AI学习从0开始-第1阶段(基础与工具)-第2天Prompt工程基础
摘要:本文介绍了AI Prompt的基本概念和使用方法。Prompt是用户给AI的指令或提示词,直接影响AI的回答质量。通过C#代码示例展示了三种Prompt优化技巧:1) 使用System Prompt设定AI角色;2) Few-shot少样本学习提供示例;3) 约束输出格式为JSON/XML。代码演示了如何调用阿里云百炼API,通过修改messages数组内容实现不同的Prompt效果,包括技术分类、格式约束等功能。文章强调Prompt工程对AI响应质量的关键作用。
2026-05-14 20:01:36
102
原创 C#调用 AI学习从0开始-第1阶段(基础与工具)-第1天安装环境与获取API Key
如果第一个路径不是 C:\Program Files\dotnet\dotnet.exe,说明旧版本的路径排在了前面。C:\Program Files\dotnet\dotnet.exe ← .NET 8 的位置。下载访问:https://dotnet.microsoft.com/download/dotnet/8.0。C:\Program Files\dotnet\x64\dotnet.exe ← 可能有多个。进入 API Key 管理 页面,点击 创建 API Key。
2026-05-06 18:52:19
417
原创 elementui知识点整理:
设置点击空白处弹窗不关闭:html设置:close-on-click-modal=“false”代码中设置:closeOnClickModal: false,
2021-08-30 16:41:42
266
原创 elementui的安装
NPM安装1.输入如下命令安装$ cnpm i element-ui -S2.安装完成后,将如下代码复制到项目中的F:\workspace\vue-project\src\main.js中import Vue from 'vue';import ElementUI from 'element-ui';import 'element-ui/lib/theme-chalk/index.css';import App from './App.vue';Vue.use(Element
2021-05-28 10:34:17
385
原创 vue的安装
NPM 方法使用淘宝镜像1.cmd打开命令窗口输入如下命令:$ npm install -g cnpm --registry=https://registry.npm.taobao.org#全局安装 vue-cli2.安装完镜像窗口输入下面命令:$ cnpm install --global vue-cli新建项目3.在本地新建一个存项目的文件夹workspace创建一个基于 webpack 模板的新项目 ,命令窗口输入如图命令进入新建的文件夹下:然后输入如下命令,新建一个名为vue-
2021-05-08 17:12:10
233
原创 设置特定用户访问共享文件
一、先添加一个用户:1.电脑“Win+R”快捷键打开运行指令框,输入compmgmt.msc打开计算机管理。2. 选中用户右键单击选择新用户,然后输入用户名密码 点击新建创建一个新用户。二、共享文件夹1.选中要共享的文件夹右键单击选共享-----指定用户 然后添加你新增的用户进去,以文件形式访问文件夹即可。访问形式:\\ip\文件夹路径....
2020-11-27 16:52:23
4395
原创 C# 给Datatable的第一行插入一笔数据
//给Datatable的第一行插入一笔数据 DataTable dt = dsDocName.Tables[0]; DataRow dr = dt.NewRow(); dr[0] = "ALL"; dt.Rows.InsertAt(dr, 0); //0代表索引 要插入到哪一行的意思...
2020-10-15 09:47:03
5149
原创 WPF 给ComboBox下拉框赋值Datatable
combobox.ItemsSource = dt.DefaultView;combobox..DisplayMemberPath = "name";
2020-10-14 16:14:59
1193
原创 WPF 设置ComboBox下拉框默认选中第一个(All)
设置ComboBox的SelectedIndex属性为0即可。<ComboBox SelectedIndex="0" />
2020-10-12 11:39:40
5657
原创 C# WPF 获取鼠标悬停在ListBox的Item上时的ListBoxItem的值。
private void ListBox2_MouseEnter(object sender, MouseEventArgs e) { StackPanel panel = e.OriginalSource as StackPanel; ListBoxItem parent = GetParentObject<ListBoxItem>(panel) as ListBoxItem; int index = Li...
2020-09-23 10:00:35
1663
转载 WPF弹出框几秒后自动关闭实现方法
WPF弹出框几秒后自动关闭实现方法1、在类的开头增加如下代码:[DllImport("user32.dll")] public static extern int MessageBoxTimeoutA(IntPtr hWnd, string msg, string Caps, int type, int Id, int time); //引用DLL像这样:2、在按钮事件或者鼠...
2020-05-06 13:47:46
4144
转载 wpf 在Popup内的TextBox 输入法 不能切换输入法
wpf 在Popup内的TextBox 输入法 不能切换输入法切换输入法 输入不了中文 1 [DllImport("User32.dll")] 2 public static extern IntPtr SetFocus(IntPtr hWnd); 3 4 IntPtr GetHwnd(Popup popup) 5 { 6 HwndSource source =...
2020-04-22 11:46:14
371
原创 C# jpg图片转pdf格式
1.首先要下载一个itextsharp.dll动态库2.jpg图片转pdf格式代码:/// <summary> /// 图片转PDF文档 /// </summary> /// <param name="jpgfilepath">图片路径</param> /// <par...
2020-04-15 18:18:28
502
原创 C# GridView居中显示
GridView 居中显示:Style="margin:0 auto"<asp:GridView ID="gv_data" runat="server" Style="margin:0 auto"> </asp:GridView>
2020-04-15 18:16:46
589
原创 MySql 设置id为自增
1.设置id为每次自动加1create table PdfReportPath(ID int auto_increment primary key ,pdfPath nvarchar(500) null)
2020-04-15 18:16:08
119
原创 C# Http方式下载pdf文件
1.Http方式下载pdf文件代码: using System.Net;using System.IO; /// <summary> /// Http下载pdf文件 /// </summary> public static bool HttpDownloadFile(str...
2020-04-15 18:15:27
941
原创 C# 读取txt文件
1.读取txt文件代码: ///<summary> ///读取txt文件 ///</summary> public void ReadTextContent() { string Path = @"E:\Zhao\x需求\福建中心医院\PDF\123.txt...
2020-04-15 18:14:38
381
原创 C# Base64位二进制流转换为文本(此例为pdf)
1.二进制流转换 string sBase64Binary = ""; //二进制流 byte[] sPDFDecoded = Convert.FromBase64String(sBase64Binary); if (sBase64Binary.Length > 0) ...
2020-04-15 18:13:33
1223
原创 C# 读取xml节点下内容的方法
1.实现方法如下:说明: 参数sXml可以为存放xml的地址,也可以是字符串。区别在于是xml的时候需用doc.Load()方法去获取,是字符串的时候用doc.LoadXml()方法去获取。public void GetValues(string sXml) { XmlDocument doc = new XmlDocument(); //...
2020-04-15 18:12:50
286
原创 C# 调用Exe文件 传参数并返回值
1.生成可传参数的WinForm文件,主要修改Form1.cs 和Program.cs文件:Program.cs 改Main方法为有参数的Form1.cs:构造方法Form1改为带参数,里面可以对入参作处理,新建一个方法Form1_Load() ,里面主要写此exe实现的功能。2.将编译后的exe文件拷贝到需要调用的文件中,3.调用exe代码: sTxtPath为exe生成...
2020-04-15 18:12:03
1487
原创 创建发布部署webservice并http方式调用
创建webservice并发布到IIS1.新建webservice 以VS2010为例先创建一个空web应用程序添加一个Web服务(asms文件)自此,一个完整的webservice新建成功HelloWorld里面写要实现的功能,也可以重新添加方法2.发布webservice右击整个项目,然后点发布,确认目标位置,然后点发布,在输出窗口可以看见发布成功提示。...
2020-01-08 16:45:51
824
原创 DataRow获取DataTable表结构
DataTable dt=new DataTable();dt.Columns.Add("id");DataRow dr=dt.NewRow();dr["id"]="1";dt.Rows.Add(dr.ItemArray);
2019-05-29 11:08:21
1288
原创 Json序列化与反序列化
一.Json序列化1.先定义一个类using System;using System.Collections.Generic;using System.Linq;using System.Web;namespace WebApplication1.Model{ public class JsonClass { public string as_r...
2019-01-24 17:19:17
174
原创 C# 写日志方法
1.Write方法是写日志主要方法。2.DeleteLog方法是删除指定日期之前生成的日志。public static void Write(string Msg) { string strPath; DateTime dt = DateTime.Now; try { ...
2018-11-15 15:37:34
5127
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅