- 博客(116)
- 收藏
- 关注
原创 LLM系列:1.python入门:4.字符串型对象
本文介绍了Python字符串对象的基本概念和常用操作。主要内容包括:字符串创建方式(单引号、双引号、三引号)、字符串与变量名/数值的区别、引号嵌套规则、换行与转义字符处理。详细讲解了字符串索引(正向/反向)、切片操作(步长设置)以及常用方法:替换(replace)、查找(find)、计数(count)、分割(split/partition)、大小写转换(upper/lower)、去除首尾字符(strip)、连接(join)和格式化输出(format)。重点强调字符串的不可变性,所有"修改"
2025-12-05 21:56:25
529
原创 LLM系列:1.python入门:3.布尔型对象
摘要:布尔型对象(bool)是Python中的逻辑数据类型,包含True和False两个值。本文介绍了布尔对象的创建方法、类型检查以及其在比较运算和逻辑运算中的应用。比较运算符(如==、!=、>、<等)用于生成布尔值,而逻辑运算符(and、or、not)则用于布尔值之间的运算。此外,文章还探讨了布尔型与数值型对象的对应关系,指出虽然0/1与False/True在值上等价,但属于不同类型。通过实例演示了各种运算规则,帮助理解布尔对象的特性和使用场景。
2025-12-05 21:55:44
492
原创 LLM系列:1.python入门:2.数值型对象
本文介绍了Python中数值型对象的创建与科学运算方法。主要内容包括:1)数值型对象的创建方式,涵盖整数(int)、浮点数(float)和复数(complex)三种类型;2)基础运算符的使用,如加减乘除、取整取余等;3)内置科学计算函数(abs、max、round等)和math模块中的高级函数(ceil、log、pow等);4)复合运算符的简化赋值操作。文章通过实例代码详细演示了各类数值操作的具体应用,为Python科学计算提供了基础参考。
2025-12-04 22:48:58
919
1
原创 LLM系列:1.python入门:1.初识python
摘要:本文介绍了Python编程基础,包括第一个程序的编写、Jupyter环境特性、对象概念、print函数的使用(基础打印和sep参数)、变量赋值原理、命名规则以及变量交换方法。重点讲解了Python中"一切皆对象"的思想,变量赋值的本质是内存地址引用,以及Python特有的元组解包交换变量值的方式。文章还强调了避免使用内置函数名作为变量名的重要性,并提供了查看Python关键字的方法。
2025-12-04 22:48:01
816
原创 测试:1.认识测试
本文摘要:测试在日常生活和软件开发中无处不在,从购物到软件使用都涉及测试行为。软件测试定义为验证产品特性是否满足用户需求,对企业盈利至关重要。测试岗位主要分为测试开发工程师和测试工程师两类,前者侧重测试框架开发,后者更关注用户体验。测试与开发在工作内容、技能要求和薪资方面存在差异,但大型企业对测试人员的专业要求与开发相当。优秀的测试人员需具备沟通、学习、开发和文档能力,掌握自动化测试技术,并具备设计高效测试用例的能力。文章还探讨了如何提升测试用例设计能力,强调测试人员需要持续学习新技术以适应行业发展。
2025-12-03 17:46:18
1036
原创 LangChain:4.LangChain 能力详解
本章节主要介绍如何在 Python 3.13 环境下使用 LangChain 快速接入大语言模型,并完成一次完整的对话流程。首先给出了需要安装的 LangChain 相关依赖,并提醒 Pinecone 组件与 Redis 向量库存在兼容性问题。随后通过六个步骤演示了 LangChain 的基本使用方式:配置 API Key、定义聊天模型、构建消息列表、调用模型、使用输出解析器解析结果,以及通过 LCEL 将多个组件串联成可运行链,实现一次性执行。章节最后引出了两个核心概念:Runnable 接口(所有模型、
2025-12-03 17:11:42
1509
原创 LangChain:3.LangChain 软件包安装
本文介绍了LangChain生态系统的软件包安装方法。主要内容包括:1) 主langchain包作为起点;2) 基础核心包langchain-core;3) 各类功能集成包;4) 社区集成包langchain-community;5) 状态应用构建包langgraph;6) LangSmith SDK工具包。文中提供了各包的安装命令,并说明了各包的功能定位和依赖关系,帮助用户根据需要选择安装合适的组件。
2025-11-17 19:58:00
365
原创 LangChain:2.大模型介绍
文章摘要:本文介绍了大语言模型的提示词编写技巧,重点阐述了CO-STAR结构化框架、少样本提示、思维链提示和自我批判等方法。CO-STAR框架通过六个维度优化提示词结构;少样本提示通过示例引导模型学习格式和逻辑;思维链提示要求模型展示推理过程以提高准确性;自我批判则通过分离生成和评审步骤来提升质量。这些技巧能显著提升大语言模型的输出效果,适用于复杂推理、内容生成等多种场景。
2025-11-16 11:41:47
1013
原创 LangChain:1.LangChain框架环境配置
本文介绍了LangChain框架的环境配置步骤,主要包括Python环境和Mac环境变量设置两部分。在Python环境配置中,详细说明了Anaconda的安装流程(包括权限设置、安装过程选项、配置更新等)以及Python虚拟环境的创建与管理命令。Mac环境配置部分则介绍了如何通过修改.zshrc文件设置OPENAI_API_KEY环境变量。摘要覆盖了从Anaconda安装到环境配置的关键操作指令,为LangChain框架的使用提供了基础环境搭建指南。
2025-11-16 11:02:52
237
原创 网络:5.应用层协议HTTP
HTTP协议是客户端与服务器通信的基础应用层协议,通常基于TCP实现。它定义了请求和响应的标准格式:请求包含方法(GET/POST等)、URL、首部字段和可选的消息体;响应包含状态码、首部字段和消息体。URL用于定位网络资源,特殊字符需通过urlencode转义。GET方法用于获取资源,POST用于提交数据,PUT/DELETE分别用于上传和删除资源。HTTP是无状态协议,每个请求独立处理,通过首部字段如Content-Length确定消息体长度。该协议是B/S架构的核心,支撑着互联网的超文本传输功能。
2025-11-15 18:49:08
1093
原创 网络:4.1加餐 - 进程间关系与守护进程
本文主要讨论了进程间关系与守护进程的相关概念。首先介绍了进程组的概念,指出进程组由一个或多个进程组成,组长进程的ID与进程ID相同。然后阐述了会话的定义,强调会话包含多个进程组,且只能有一个前台进程组。文章还解释了控制终端的作用及其与进程组的关系,说明中断信号会发送给前台进程组。最后讨论了作业控制的概念,包括作业号、作业状态以及作业的挂起与恢复操作。这些概念为理解守护进程及其实现奠定了基础。
2025-11-15 18:41:43
1100
1
原创 网络:4.应用层自定义协议与序列化
本文介绍了应用层自定义协议的实现方法,重点讨论了网络计算器的设计方案。主要内容包括: 应用层协议本质是双方约定的结构化数据交换格式,可采用字符串拼接或序列化方案实现 详细分析了TCP全双工通信原理,解释了粘包问题的产生原因 提出了基于JSON序列化的网络计算器实现方案,支持加减乘除模运算 介绍了守护进程创建的系统调用daemon() 展示了Socket类的模板方法设计模式实现 提供了完整的网络通信模块代码,包括地址转换、日志、互斥锁等基础设施 该方案通过序列化/反序列化处理结构化数据,解决了TCP字节流可能
2025-10-30 21:59:02
417
原创 网络:3.Socket编程TCP
本文介绍了Socket编程中TCP相关系统调用的基本概念和使用方法。包括socket()创建套接字、bind()绑定地址、listen()监听连接、accept()接受连接、connect()发起连接、recv()/send()数据收发等核心接口。重点说明了TCP服务器中listen和accept的分工关系:listen负责接受新连接请求,accept返回的套接字用于实际I/O通信。最后提到了一个TCP服务器示例项目,支持远程命令执行和字典翻译功能。这些接口是构建TCP网络应用程序的基础,掌握它们对网络编程
2025-10-30 12:37:29
864
原创 网络:2.1加餐 - 网络命令
网络常用命令摘要: Ping命令 - 测试网络连通性,-c指定次数,返回TTL和延迟时间,统计丢包率。 Netstat命令 - 查看网络状态: 常用选项:-n(数字显示)、-l(监听状态)、-p(显示进程)、-t(tcp)、-u(udp)、-a(全部) 配合watch实时监控网络状态 输出包含协议类型、队列状态、本地/远端地址、PID等信息 xargs工具 - 将前命令输出作为后命令参数: 支持-n指定参数个数、-d自定义分隔符、-p确认执行 常用于批量操作 pidof命令 - 通过进程名查PID: 可结合
2025-10-29 21:44:50
267
原创 网络:2.Socket编程UDP
本文介绍了Socket编程UDP相关的主要接口,包括创建套接字的socket()、绑定地址的bind()、IP地址转换函数inet_addr()/inet_ntoa()/inet_pton()/inet_ntop(),以及UDP通信的核心函数recvfrom()和sendto()。这些接口用于实现UDP网络通信中的地址绑定、数据收发和IP格式转换等功能,为开发UDP应用提供了基础编程接口。
2025-10-29 20:55:09
757
原创 MySQL:14.mysql connect
本文介绍了使用C语言连接MySQL数据库的关键步骤和方法。主要内容包括:1) 准备工作,确保MySQL服务有效并下载Connector/C库;2) 连接MySQL的基础操作,使用mysql_init初始化连接,通过mysql_real_connect建立连接;3) 执行SQL命令,使用mysql_query发送查询或更新语句;4) 获取查询结果,通过mysql_store_result函数。文章还提供了编译链接时的参数设置和常见问题解决方法,如字符集设置和动态库路径配置。这些接口为C程序操作MySQL数据库
2025-10-19 19:45:35
623
原创 MySQL:13.用户管理
MySQL用户管理摘要:MySQL用户存储在mysql.user表中,包含主机、用户名和加密密码等信息。创建用户使用CREATE USER命令,需指定用户名、主机和密码。删除用户用DROP USER并刷新权限。修改密码可通过SET PASSWORD命令,root可修改其他用户密码。安全建议限制用户登录主机,避免创建任意主机可登录账户。操作后建议执行FLUSH PRIVILEGES刷新权限。密码复杂度要求可通过validate_password参数调整。
2025-10-19 18:50:55
246
原创 网络:3.Socket编程TCP(速览版)
Socket编程TCP接口与命令摘要 核心接口: listen():将socket转为被动监听状态,设置半连接队列长度(TCP服务器专用) accept():从已完成队列提取客户端连接,返回新socket用于通信(阻塞调用) connect():客户端发起TCP连接(UDP可指定默认目标地址) popen():创建管道执行shell命令,需用pclose()关闭避免僵尸进程 调试命令: telnet:测试TCP端口连通性(成功显示"Connected",拒绝提示"Connect
2025-10-17 23:40:57
1114
4
原创 网络:2.Socket编程UDP(速览版)
本文介绍了Socket编程中UDP协议相关的核心接口函数: socket() - 创建套接字端点,支持IPv4/IPv6和本地进程通信 bind() - 将套接字与本地IP和端口绑定 bzero() - 内存清零初始化函数 inet_addr()/inet_ntoa() - IPv4地址字符串与网络字节序转换 inet_pton()/inet_ntop() - 更安全的IP地址转换函数,支持IPv4/IPv6 recvfrom() - 从UDP套接字接收数据并获取发送方地址 sendto() - 向指定目标
2025-10-17 23:39:37
732
原创 Linux:12.线程同步与互斥
线程同步与互斥摘要 本文介绍了线程同步与互斥的基本概念。重点讨论了线程互斥问题,包括临界资源、临界区、互斥等关键概念。通过售票系统示例展示了共享变量在多线程环境下的数据竞争问题,分析了问题根源在于非原子操作。文章详细介绍了互斥量(mutex)的使用方法,包括初始化、加锁解锁操作和销毁过程。最后探讨了互斥量实现的底层原理,指出硬件层面通过交换指令保证原子性。通过互斥锁可以将并行执行转变为串行执行,确保临界区代码的原子性访问。
2025-10-17 23:35:53
694
原创 Linux:10.Linux进程信号
Linux进程信号摘要 进程信号是Linux系统中进程间异步事件通知的机制,类似于生活中的快递通知。信号处理包含三个关键阶段:信号产生、信号保存和信号处理。进程可以识别并处理信号,方式包括默认动作、忽略或自定义捕捉。重要信号如SIGINT(2)和SIGQUIT(3)可通过Ctrl+C等操作触发,而SIGKILL(9)等信号无法被自定义捕捉。信号处理具有异步性,进程会在合适时机而非立即处理信号。系统调用signal()可用于设置信号处理方式,而前台/后台进程对信号接收存在差异。信号编号1-31为标准信号,每种
2025-09-30 11:45:20
596
原创 C++进阶:6_C++11
C++11 核心特性摘要 C++11 是 C++ 语言的重要更新,引入了多项关键特性: 列表初始化:统一初始化方式,支持一切对象用{}初始化,包括内置类型和自定义类型。新增了std::initializer_list类,使容器支持任意多个值的初始化。 右值引用:引入&&语法,区分左值(可寻址)和右值(临时对象)。右值引用主要用于: 延长临时对象生命周期 实现移动语义 完美转发 配合std::move实现资源转移 移动语义:通过右值引用减少不必要的拷贝,提升性能。标准容器和智能指针都实现了移动
2025-09-25 19:30:51
973
原创 STL的list模拟实现(带移动构造和emplace版本)
该文件实现了双向带头循环链表模板类list,主要包含以下内容: 定义了链表节点结构体ListNode,包含前驱指针、后继指针和数据成员,支持多种构造方式。 实现了正向迭代器ListIterator,通过模板参数区分const和非const版本,提供了基本的迭代器操作(解引用、指针访问、前后移动等)。 使用迭代器适配器实现了反向迭代器功能(基于ReverseIterator.h)。 list类提供了完整的迭代器支持: 正向迭代器begin()/end() const正向迭代器 反向迭代器rbegin()/re
2025-09-25 17:07:59
275
原创 网络:1.网络基础概念
本文介绍了计算机网络的基础概念和协议分层模型。主要内容包括: 计算机网络发展历程:从独立计算机到局域网、广域网的演进过程。 协议的基本概念:协议是计算机通信中的约定标准,类似于人类语言中的语法规则。 协议分层架构: OSI七层模型(理论框架) 实际应用的TCP/IP五层/四层模型(物理层、数据链路层、网络层、传输层、应用层) 协议分层优势:实现模块化设计,提高系统可维护性和灵活性。 TCP/IP协议的作用:解决远距离通信带来的技术挑战,确保不同厂商设备间的互操作性。 文章通过简单类比(如电话铃响约定)帮助理
2025-09-23 22:23:27
861
原创 Linux:9.进程间通信
进程间通信(IPC)是不同进程间交换数据的技术,主要包括管道、System V IPC和POSIX IPC等机制。其中管道分为匿名管道(pipe系统调用)和命名管道,匿名管道常用于父子进程通信,通过文件描述符实现数据共享。管道本质上是内核中的缓冲区,遵循"先进先出"原则,具有固定大小(通常4KB)。示例代码展示了父子进程通过管道通信的实现,以及进程池处理任务的基本框架。IPC的核心是让不同进程访问同一份系统提供的资源,从而实现数据传输、资源共享等功能。
2025-09-20 19:07:06
936
原创 Linux:8.库制作与原理
文章摘要 本文详细介绍了Linux系统中库的概念、分类及使用方法。主要内容包括: 库的基本概念:库是预先编写好的可复用代码,分为静态库(.a)和动态库(.so)两种形式。 静态库制作与使用: 使用ar命令打包.o文件生成静态库 通过gcc的-L、-l选项链接静态库 静态库会被直接编译进可执行文件 动态库制作与使用: 使用gcc的-shared和-fPIC选项生成位置无关码 动态库在程序运行时才被加载 相比静态库更节省磁盘和内存空间 动态库搜索路径问题及解决方案: 拷贝到系统库目录 建立软链接 修改LD_LI
2025-09-14 18:03:15
835
原创 Linux:7.Ext系列文件系统
Ext文件系统是Linux中常用的磁盘文件系统,它将磁盘划分为多个分区进行管理。文章首先介绍了磁盘的物理和逻辑结构,包括磁头、磁道、柱面和扇区等概念,重点讲解了CHS和LBA两种寻址方式。随后引入"块"和"分区"的概念,指出操作系统以块为单位存取数据,每个分区又由多个块组成。通过将磁盘视为一维数组,使用LBA地址可以高效定位数据。文件系统的核心任务就是管理这些分区和数据块,实现文件的存储与检索。
2025-09-12 10:29:37
814
原创 HTML:1.HTML基础
HTML是超文本标记语言,用于创建网页。HTML文档由标签构成,包括双标签和单标签,具有层次结构(父子、兄弟关系)。基本结构包含<html>根标签,<head>定义页面属性,<body>显示内容。DOCTYPE声明文档类型,meta标签设置字符编码和视口配置。开发者工具可查看DOM树结构,现代编辑器能快速生成HTML框架代码。
2025-09-10 21:26:21
441
原创 Linux:6.基础IO
本文摘要: 本文系统介绍了Linux基础IO相关知识,主要包括: 文件的基本概念,从狭义和广义两个维度解释文件,并分析文件操作的本质是进程对文件属性的读写; 回顾C语言文件操作接口,包括fopen、fread、fwrite等函数的使用方法; 详细介绍Linux系统文件I/O的系统调用接口,如open、read、write、close、lseek等函数的使用方法; 通过代码示例演示如何使用系统调用实现文件读写功能; 解释文件描述符的概念,以及stdin/stdout/stderr的特殊地位; 介绍标志位传递方
2025-09-09 09:09:46
1084
原创 Linux:5.进程控制
本文介绍了Linux系统中的进程控制核心概念,包括进程创建、终止和等待机制。主要内容涵盖: 进程创建 - 通过fork系统调用创建子进程,父子进程共享代码段,采用写时拷贝技术实现数据分离,保证进程独立性。 进程终止 - 介绍了正常终止(main返回、exit/_exit调用)和异常终止场景,重点分析了退出码机制和exit与_exit的区别。 进程等待 - 阐述了父进程通过wait/waitpid系统调用回收子进程资源的必要性,详细解析了status参数的位图结构,以及阻塞与非阻塞等待方式。 文章深入浅出地讲
2025-09-04 03:54:37
580
原创 Linux:4.进程概念
本文主要介绍了计算机体系结构、操作系统和进程的基本概念。首先阐述了冯诺依曼体系结构及其核心组件:输入单元、中央处理器和输出单元。然后探讨了操作系统的定义、设计目的和核心管理功能,强调其"先描述,再组织"的管理方式。文章重点讲解了进程的概念,包括进程控制块(PCB)和Linux中的task_struct结构体,详细说明了如何查看进程信息、获取进程标识符以及使用fork创建子进程。最后简要提及了Linux内核中的进程状态定义。全文从底层硬件到上层软件,系统地介绍了计算机系统中的关键概念及其相
2025-08-23 14:15:38
603
原创 Linux:1.Linux下基本指令
Linux基础指令学习指南 本文介绍了Linux系统的基本操作指令,主要包括: 基础指令:ls(列出文件)、pwd(显示当前路径)、cd(切换目录)、touch(创建文件)、mkdir(创建目录)、rmdir/rm(删除目录/文件) 实用工具: which(查找指令路径) alias(设置命令别名) tree(显示目录结构) stat(查看文件状态信息) wc(统计文件行数) 系统管理: hostname(修改主机名) nano(文本编辑器) whoami(显示当前用户) 高级技巧: 重定向操作 创建大文件
2025-07-14 19:38:20
376
原创 Linux:3.基础开发⼯具
本文介绍了Linux基础开发工具中的软件包管理器和Vim编辑器。主要内容包括:1) Linux软件包管理器的概念及常用工具(yum/apt),阐述了软件包安装、卸载等操作;2) Linux软件生态体系,分析了软件源、镜像站及依赖问题;3) Vim编辑器三大模式(命令、插入、底行)的基本功能和使用方法,强调了模式切换的重要性。文章还提供了国内常用软件镜像源链接,并指出网络畅通是软件包管理操作的前提条件。
2025-07-14 19:30:18
866
原创 Linux:2.Linux权限
目录的可执行权限是表示你可否在目录下执行命令。如果目录没有-x权限,则无法对目录执行任何命令,甚至无法cd 进入目, 即使目录仍然有-r 读权限(这个地方很容易犯错,认为有读权限就可以进入目录读取目录下的文件)而如果目录具有-x权限,但没有-r权限,则用户可以执行命令,可以cd进入目录。但由于没有目录的读权限所以在目录下,即使可以执行ls命令,但仍然没有权限读出目录下的文档。
2025-06-20 00:07:58
602
原创 数据结构进阶:2_图
本文介绍了图的基本概念和存储结构。图由顶点集合V和边集合E组成,分为有向图和无向图。完全图是顶点间都直接相连的最稠密图。图的存储方式包括邻接矩阵(二维数组表示顶点关系)和邻接表。邻接矩阵适合稠密图,能快速判断顶点连通性;邻接表适合稀疏图,节省空间。文章还讨论了顶点度、路径、连通图等概念,并给出了C++实现图的邻接矩阵存储代码示例,包括添加边、查找顶点等操作。
2025-05-25 19:17:31
1042
原创 MySQL:12_视图
本文介绍了MySQL视图的基本概念和使用方法。视图是基于查询定义的虚拟表,其数据来源于基表,视图与基表数据相互影响。主要内容包括:视图的创建、修改和删除语法;使用规则和限制,建议以查询为主;视图检查选项(CASCADED和LOCAL)的区别;视图更新的限制条件;以及视图的三大作用:简化操作、提高安全性和保证数据独立性。文章还通过案例演示了视图与基表的交互影响,并提供了OJ练习题链接。
2025-05-25 12:56:34
383
原创 MySQL:11_事务
本文介绍了MySQL事务的基本概念及其重要性。事务是一组逻辑相关的DML语句集合,具有原子性(要么全部成功要么全部失败)、一致性(维护数据完整性)、隔离性(防止并发问题)和持久性(永久修改)四大特性(ACID)。事务主要用于处理复杂操作,保证数据一致性。文章通过银行账户表案例演示了事务的基本操作(开始、保存点、回滚等),并验证了未提交事务在客户端崩溃时会自动回滚的特性。此外还说明了InnoDB引擎支持事务而MyISAM不支持,以及如何查看和设置事务提交方式(自动/手动)。
2025-05-25 12:47:35
1319
原创 C++进阶:5_哈希
unordered_map在线文档说明unordered_map是存储<key, value>键值对的关联式容器,其允许通过keys快速的索引到与其对应的value。在unordered_map中,键值通常用于惟一地标识元素,而映射值是一个对象,其内容与此键关联。键和映射值的类型可能不同。在内部,unordered_map没有对<kye, value>按照任何特定的顺序排序, 为了能在常数范围内找到key所对应的value,unordered_map将相同哈希值的键值对放在相同的桶中。
2025-05-08 20:34:29
948
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅