- 博客(67)
- 收藏
- 关注
原创 AI agent创建——阈值比例
在AI Agent(人工智能智能体)的上下文中,简单来说,它是Agent在面临不确定性时,决定“该自己干”、“该找工具”还是“该问人类”的那条红线。
2026-04-12 14:45:18
191
原创 AI agent之意图识别与变量聚合
在开发时,你需要为每一个意图(或 Function/Tool)定义一个严格的结构化参数表。比如意图是查询销售数据。数据维度(必填项,如:销售额、利润)、时间范围(必填项,如:昨天、本月)、产品线(选填项)。
2026-04-12 10:37:30
304
原创 从3开始制作agent——对话流模型
很明显,这个模型十分好用,将里面的模型调整好,还有知识库调整好,最后加数据库保存数据,最后就可以十分优秀的使用起来!本质就是一个针对特定场景的agent,workflow,十分好用!
2026-03-22 17:19:13
35
原创 从3开始手搓agent_专业对话模型!
这里创建好工作流后就可以使用起来,很多人会觉得这里面大模型的作用是什么?用文献检索就可以输出,不,实则不然,模型在这一套工作流中起到的就是让回答更加拟人化(软化语言)一套可以使用的工作流是需要耗费大量精力和模型搭建思考的,这里面我们会用到知识库检索,加工信息(llm),skill等等,最终会输出output!很多场景不需要模型十分聪明,他的回答更多是需要定死的,针对这个需求,我们有着一个新的框架,也就是-对话流模式。这一系列的工作完成基于扣子平台可以大量减少自己的时间成本,并且更加亲民化!
2026-03-22 16:31:44
33
原创 从2开始手搓agent
知识库是分为向量和分级两种类型,向量版的是类似于markdown形式,更好的让llm切片分段,一般在平级的内容使用较多,只需要指向,不需要分级(索引);有关agent入门的使用大抵这样,现在开始使用agent不可或缺的部分,知识库,我们都知道我们调用的模型他本身也是一个很全面的模型,但是想让他回答更专业的内容,不可或缺的需要给他一些特定的知识环境来让它变得更加专业化,这就是我们给他的知识库。各大数据库平台,还有自己收集的数据库等等,这些都是来源,所需数据的大小一般看自己的需求来判定自己所需的知识库。
2026-03-22 15:56:33
34
原创 从1开始agent开发
上一篇我们说到,agent开发使用markdown语言,这个语言是让agent可以更好的辨别我们的要求和框架,让agent更加准确回复,在扣子平台中,他会给我们做好框架,我们只需要在框架中输入prompt即可。他会有一个特殊框架,也就是应用场景,也就是在何时使用这个agent的判断,这里写的越多,后续在和agent做问答时自己需要写的越少,不然则反之。每一个agent都需要配置好模型和提示词,也就是身份等等内容,利用扣子平台可以快速上手相关内容,可以快速搭建各大框架,效率确实有所提高!
2026-03-22 11:42:56
51
原创 从0开始的agent智能体创建
4.tool,这个是agent的手和脚,例如llm大模型本身无法读取文件,日期等等,我们需要使用各种插件来让这个agent来拥有这个能力,这个东西扣子平台做好了集成,会有各种API调用。2.选择好llm大模型,配置好各个偏好,例如上下文记忆,最大输出文本量(token)等等,这个主要看你的钱有多少,并不是最好的pro越好,简单的问题使用简单模型,复杂的事情使用复杂模型。- **未知处理**:当你不知道答案时,必须直接回答“我还在学习中,暂时无法解答”,**禁止**胡编乱造。:Agent 绝对不能做的事。
2026-03-22 11:01:02
215
原创 2025.1.9-3 curses基本内容
cursesLinux库用于开发基于文本终端的用户界面(TUI)。它提供了一种简单而有效的方式来处理终端的输入输出、光标控制、颜色设置等,使得开发者能够创建出交互式、美观且易于使用的文本界面程序。以下是关于curses。
2025-01-09 16:00:06
867
原创 2025.1.8-4 链表插入(后方与前方插入)
p->next放在=号前面,代表p指针指向的下一个指针,是一个动作,放在=号后面,代表p指针的下一个指针,是指一个指针。}//头部引入节点时。
2025-01-08 17:04:19
504
原创 2025.1.8-3 统计链表个数以及链表查找
int cnt;while(head!= NULL){cnt=cnt+1;return cnt;int cnt=0;while(head!=NULL){return 1;//出1说明找到。return 0;
2025-01-08 16:13:28
363
原创 2025.1.8-2 链表静态添加与动态遍历
1)静态添加:在需要的情况下,只需要在代码内不断添加元素即可,但注意要用指针变量来指向下一个元素(结构体),形成一长串。2)动态遍历:运用函数,死循环,还有if语句或者直接循环,可以将链表内所有元素内容打印出来。例如:直接循环void printlink(struct Test *head){ struct Test *point; point = head; while(point != NULL){ printf("%d",point->d
2025-01-08 15:39:13
343
原创 2025.1.8-1 链表(基础内容)
1)类似于,而2)具体:链表是一种常见的基础数据结构,它由一系列节点组成,这些节点通过指针(在一些语言中类似指针的机制)相互连接,形成一个链式结构。
2025-01-08 14:40:13
1353
原创 2025.1.6-3 Linux虚拟机网络配置
VMware 有,分别为。每种模式都有其特点和适用场景,以下为你详细介绍:1. 桥接模式(Bridged)(最重要):用户可以为虚拟机设置静态 IP 地址,也可以通过 DHCP 自动获取 IP,配置方式与真实主机类似。(占用资源高)
2025-01-06 17:52:41
891
原创 2025.1.6-2 Linux与window文件传输方式
2.3)ftp(一种工具),常用的软件有:filezilla(免费),totalcommad,cuteftp。2.1)把windows上的文件通过拖拽的方式直接放入linux桌面内(对文件夹,文档都适用)2.3.1)filezilla运用时要。然后把文件拖拽即可完成传输,可以实现相互传输。1)下载安装vmmare tool(核心,运用它来实现)
2025-01-06 17:13:07
306
原创 2025.1.6-1 linux系统常用指令(超级重要)
1.1)命令行模式:默认此模式,从输入模式回到命令行模式,运用:esc(标志 insert消失)1.2)输入模式:按i(insert)进入,看到insert就可以输入代码。
2025-01-06 16:21:31
2009
原创 2025.1.3-3 函数运用重点
2)函数运用时一定要先分步骤,一步一步的写代码,看看要不要返回值,没有返回值为viod函数类型。3)结构体与结构体指针也可以作为函数来运用,与结构体不同的是{}后有没有句号。
2025-01-03 21:39:37
333
原创 2025.1.3-2 选票系统改写
printf("名字:%s,票数;printf("请输入第%d个候选人的名字:\n");printf("无此人!printf("请输入你要投给谁:\n");//初始化选民信息。
2025-01-03 20:57:09
291
原创 2025.1.3-1 结构体指针变量
printf("t1的cdata值为:%c\n",t1.cdata);//变量名访问,用点运算符。printf("t1的idata值为:\n",t1.idata);//变量名访问,用点运算符。
2025-01-03 20:43:09
247
原创 2024.12.29-4 选票系统
printf("名字:%s,票数;printf("请输入第%d个候选人的名字:\n");printf("请输入你要投给谁:\n");
2024-12-29 21:58:25
423
原创 2024.12.29-3 结构体与数组
printf("姓名:%s,年龄:%d,地址:%s,成绩:%lf\n",arr2[i].name,arr2[i].age,arr2[i].addr,arr2[i].score);//类似与二维数组。
2024-12-29 21:34:13
338
原创 2024.12.29-2 结构体的小应用
else{printf("姓名:%s,年龄:%d,地址:%s,成绩:%lf",stu2.name,stu2.age,stu2.addr,stu2.score);{printf("姓名:%s,年龄:%d,地址:%s,成绩:%lf",stu1.name,stu1.age,stu1.addr,stu1.score);printf("姓名:%s,年龄:%d,地址:%s,成绩:%lf",max.name,max.age,max.addr,max.score);//其中,struct Student相当于int。
2024-12-29 21:17:02
374
原创 2024.12.28-1 字符常用操作函数(API)
/两个要拼接的字符。一般关注返回值为0,表示两个字符相同,不为0的用处不大。puts("请输入字符串");puts("请输入字符串");puts("帅气的我");
2024-12-28 21:47:15
612
原创 2024.12.25-4 动态开辟字符串(4个常用api记住)
* //运用strcpy()函数,原型char *strcpy(char* dest,const char *src);//运用strcpy()函数,原型char *strcpy(char* dest,const char *src);原型:void *malloc(size_t size),分配所需空间,并返回一个指向它的指针。1.2)当想要随意输入多个字符时,运用strcpy与malloc函数,代码如下。
2024-12-25 21:38:21
421
原创 2024.12.25-3 sizeof与strlen区别(很重要)
/计算实际字符长度。p是一个char *,sizeof计算时,得到是计算机用多少字节来表示地址。
2024-12-25 20:44:32
518
原创 2024.12.25-1字符串(基础)
并且不可以这样定义:char *pchar;野指针不可以这样操作。//或者*(pchar+i)char c = 'c';}//运用for循环一个一个字符输出,麻烦。1)就是字符数组(理解起来核心)//字符串的各种定义法。//多字符用双引号,
2024-12-25 20:01:20
203
原创 2024.12.24-6 二级指针(重难点)
1)二级指针不可以直接指向二维数组。(会警告,不兼容)二维数组应该和(*p)[4]相兼容。printf("请输入你要看的学生号数(0,1,2三个中一个):");运用:对成绩的读取(上一道题的重解)
2024-12-24 22:26:47
246
原创 2024.12.24-5 二级指针(多级指针)(基础)
pp访问data的值是:100*/ //最后可以一层一层访问回到最开始的值。printf("pp访问data的值是:%d\n",**pp);3)差异:保存的是指针变量的地址(地址的地址)printf("pp保存的地址:%p\n ",pp);printf("pp本身地址是:%p\n",&pp);printf("p保存的地址是:%p\n ",p);printf("p本身地址是:%p\n",&p);p保存的地址是:000000000061FE1C。
2024-12-24 21:56:30
257
原创 2024.12.24-4指针数组(基础)
基础 与数组指针不同。 1)数组指针: int (*p)[4];这是指向一维数组的指针变量。(由数组做出来的指针) 2)指针数组:若一个数组元素均为指针类型数据,则称为指针数组(用指针做出来的数组)定义:int (*p[4]); 注意与(*p)[4]二者的区别。核心:优先级的问题:[]的优先级比*大,所以前者为先p[4]而后整体变为指针(元素是指针),后者先变指针,而后有四个元素(元素不是指针)。面试可能会考。运用:一般运用
2024-12-24 21:07:04
358
原创 2024.12.24-3 函数指针(运用,体现间接调用的好处)
该题答案没有运用二次函数调用,可以把if内容中的函数运用提取出来,单独用一个函数来出结果。
2024-12-24 17:51:36
333
原创 2024.12.24-2 函数指针(基础)
1)函数地址(函数指针):若程序定义一个函数,则在编译时,该函数分配的。//定义一个指针函数。间接访问运用指针(函数指针)
2024-12-24 17:08:15
173
原创 2024.12.24-1数组指针和二维数组的运用
输出二维数组任意列的数#include <stdio.h>void putArray(int *phang,int *plie){ printf("请输入你要找的数的行:\n"); scanf("%d",phang); printf("请输入你要找的数的列:\n"); scanf("%d",plie);}void printfArray(int (*p)[4],int hang,int lie){ int
2024-12-24 16:28:12
190
原创 2024.12.23-2 二维数组(地址的理解)
1)父子数组:对于a[3][4]来说,a即为父数组的名(地址),其中a[1],a[2],a[0]等为子数组的名(地址)2)偏移:a+1;指的是父数组的偏移,偏移量由子数组元素的量确定,a[0]+1等为子数组的偏移。3)对于子数组,其中a[0]的值为a[0][0]的值,都是该数组的首元素地址4)*a与a[0]意义一致,*(a+0)+1与a[0]+1一致,都是子数组首元素的地址。5)运用:地址的三种表达方式:&a[i][j];a[i]+j;
2024-12-23 20:49:27
619
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
1