- 博客(71)
- 资源 (2)
- 问答 (1)
- 收藏
- 关注
原创 LangChain入门指南:调用DeepSeek api
LangChain是一个用于构建大语言模型(LLM)应用的开发框架,支持链式调用、记忆管理、工具集成等。LangChain大幅降低了LLM应用开发门槛,确实是相当简单易用。并且为我们快速替换LLM提供了非常便利的基础。
2025-04-09 23:14:51
325
原创 使用DeepSeek API进行情感分析:超简单
情感分析”问题,是指我们根据一段文字,去判断它的态度是正面的还是负面的。电商评论分析社交媒体舆情监控客户服务质量评估维度传统方法LLM方法开发速度慢(需数据收集+训练)快(即时API调用)准确率领域内高,跨领域低泛化性强,领域适应快硬件需求CPU即可运行小模型需要GPU/API调用适用场景固定领域的大规模分析灵活需求、小样本场景成本前期训练成本高,后期推理成本低按API调用次数计费。
2025-03-31 22:05:40
1113
原创 使用 DeepSeek 调用 Function Calling:从入门到实践
Function Calling 通过让AI模型无缝调用外部工具或服务,扩展其能力边界,实现从意图识别到执行落地的闭环,将大语言模型转化为可编程的智能执行中枢。
2025-03-25 06:32:12
1011
原创 从零到一开发一款 DeepSeek 聊天机器人
通过本文,你已经完成了一个智能聊天机器人的开发,从环境配置到核心代码实现,再到功能扩展。成果实现了一个基于 DeepSeek API 的智能聊天机器人。支持多轮对话和基本的错误处理。改进方向添加图形用户界面(GUI),提升用户体验。集成更多功能,如语音输入/输出、知识库查询等。优化性能,支持高并发请求。希望这篇文章能为你提供清晰的开发思路和实用的代码示例。如果你有任何问题或建议,欢迎在评论区留言!
2025-03-22 22:32:10
2600
原创 接入DeepSeek API,看这一篇就够了,超详细
DeepSeek API 是一个强大的自然语言处理工具,提供了文本生成、语义分析、对话系统等功能。无论是开发智能客服、聊天机器人,还是进行文本分析与生成,DeepSeek API 都能为你提供强大的支持。本文将带你从零开始,一步步完成 DeepSeek API 的接入,并编写你的第一个 AI 程序。通过本文,你已经完成了从注册 DeepSeek 账号到编写第一个 AI 程序的完整流程。DeepSeek API 的功能远不止于此,你可以继续探索其文档,尝试更多高级功能,如对话系统、语义分析等。
2025-03-20 23:35:34
1043
原创 MySQL索引 Error1071
MySql索引的常见错误:Error 1071:Specified key was too long,他的解法您知道多少种呢?
2023-11-25 22:28:50
2440
原创 使用QPlainTextEdit完成一个代码编辑器
用QPlainTextEdit、CommentHighlighter、QCompleter组合实现一个完备的代码编辑器,包括功能:文本编辑、显示行号、高亮编辑去、代码自动补全等。
2022-09-22 20:30:00
2013
原创 前端跨域的原则
前端跨域的原则与避免途径1.跨域 跨域资源共享(Cross-Origin Resource Sharing, CORS)是为解决 Ajax 技术难实现跨域问题而提出的一个规范,这个规范试着从根本上解决安全的跨域资源共享问题。2.option请求 option请求是一种探测性的请求,通过这个方法,客户端可以在采取具体资源请求之前,决定对该资源采取何种必要的措施。3.跨域解决方案 若要允许跨域,传统的解决方案是服务器端设置 Access-Control-Allow-Origin: *,但是这是
2020-07-16 22:40:51
456
原创 04-MyBatis缓存
MyBatis的缓存缓存介绍为什么使用缓存 在数据库使用的过程中,有一些数据的查询频次远大于修改,甚至是不会进行修改的,如果将用户的这部分数据放在缓存(内存)中,用户去查询数据就不用从磁盘上(关系型数据库数据文件)查询,从缓存中查询,从而提高查询效率,解决了高并发系统的性能问题。因此,缓存是非常有必要的,但是也要注意,对于使用频次不高,或者经常修改的数据进行缓存也会加大系统开销。MyBatis缓存 MyBatis包含一个非常强大的查询缓存特性,它可以非常方便地定制和配置缓存。MyBatis默认
2020-07-16 22:40:22
243
原创 03-哈希表
哈希表什么是哈希表 哈希表(Hash table,也叫散列表),是根据关键码值(Key)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。 给定表M,存在函数f(key),对任意给定的关键字值key,代入函数后若能得到包含该关键字的记录在表中的地址,则称表M为哈希(Hash)表,函数f(key)为哈希(Hash) 函数。什么是哈希冲突(collision) 在创建哈希表的过程中,若给定两个不
2020-07-14 21:50:27
223
原创 03-MyBatis动态SQL
MyBatis动态SQLMyBatis的动态SQL比较多,但是常用的也就几个,包括if,where,set,choose.ifif语句是条件判断,例如判断type不为空,则增加type语句<if test="type != null">type=#{type}</if>where在查询语句中,我们经常需要根据给定的不同数据类型,查询不同的语句,动态where此时正当用。<select id="select" resultType="person">
2020-07-04 19:51:56
249
原创 02-MyBatis基本使用
MyBatis基本使用MyBatis是一个半自动化的ORM(对象关系映射)框架,她的核心就在于Sql语句和对象的关系映射上面。总的来说,MyBatis的对象关系映射主要有两种方式:xml配置文件和注解方式。xml配置文件方式1.namespace命名空间MyBatis的映射文件内容都包含在一个namespace中,这个namespace中的名称必须和Mapper接口名称一致,并且还包括完整的包名。比如:package com.kestiny.mybatis.mapper;public inte
2020-07-04 19:51:16
212
原创 01-MyBatis环境配置
MyBatis环境配置MyBatis是一款优秀的持久层框架,她是半自动的化的ORM(Object Relationship Mapping)框架。1.准备工具jdk 13.0.2maven 3.6.3MyBatis 3.5.4junit 4.13logback 1.2.3MySQL-connector-java 8.0.20slf4j 1.7.252.创建一个空的maven项目可以使用IDE创建,比如IDEA或者Eclipse之类的;也可以使用命令行创建mvn arche
2020-07-04 19:41:21
287
原创 Python爬虫---爬取数据(上)
又是女票,拿了3万多条的13年某地区的公司信息,但是三年过去了,工商局的注册信息发生了巨大变化,有的注册资本增加了,有的公司老板变多了,更有不少公司不存在了,因此,需要一份最新的信息以便于她进行使用。 原先是想用工商局网站上进行爬取的,但是发现工商局网站好多验证信息,毕竟我这Python初学咋练的,是在是怕怕啊!幸好,找到一个名为天眼查的网站,这个网站没有验证,可以直接查询,因此就拿这个网站
2020-07-03 22:25:09
38314
23
原创 数据结构与算法学习-02栈与队列
栈与队列 栈与队列,在数据结构中也属于线性表。栈(Stack)栈的实现逻辑 栈是一种特殊的表,其特殊在于插入与删除操作只能在末端(也就是栈顶)进行,因此栈是**后进先出(LIFO)**的线性表。栈的操作也就包含了出栈(Pop),入栈(Push)和获取栈顶元素(Top)。栈的实现方式有两种,一种是数组形式的栈(如下图),另外一种是链表形式的栈。栈的时间复杂度操作时间复杂度访问O(n)搜索O(n)插入O(1)删除O(1)队列(Queue)
2020-07-03 22:08:25
198
原创 数据结构与算法学习-01数组与链表
数组与链表 数组与链表,在数据结构中都属于线性表。所谓线性表,是指所有元素都排列在一个维度上;对其中的任意一个元素来说,除了头和尾,都有且只有一个前驱元素和一个后继元素。数组数组的实现逻辑储存:数组储存在连续的内存中。访问:因为数组存储的内存连续,因此支持随机访问。所谓随机访问,也就是直接下标操作。增加:因为数组内存的连续性,因此若要增加元素,为保持数组的线性,必须把此元素之后的所有元素依次后移。删除:删除同理增加元素,必须把元素依次前移,以保证数组的线性和完整性。数组的时间复杂度
2020-07-03 22:04:03
593
原创 Python tkinter和exe打包
接上篇。 爬虫程序的核心,爬虫天眼查的公司信息类TianYanCha已经完成了,并且验证可以工作,但是给不是专业方面的人用的话,还要安装Python解释器,还没有界面是挺麻烦的,于是就想写一个简单的界面,然后打包成可执行程序给女票用。tkinter界面 由于我的界面要求很简单,只是输入两个文件路径,一个实时输出信息的文本框,于是没有选择其他的Python界面扩展,只是选择Python的事实界
2020-02-04 16:09:25
15418
8
原创 [笔记]移动语义和完美转发
移动语义和完美转发std::move、std::forwardstd::move是执行转换的函数模板。std::move无条件的将它的参数转换成一个右值。std::move本身不move任何东西,也不产生可执行代码。std::forward是执行转换的函数模板。std::forward当参数被绑定为右值时才将它的参数转换成一个右值。std::forward不转发任何东西,也不产生可执行代码。...
2019-07-25 22:43:48
493
原创 [笔记]右值引用
右值引用左值和右值C++中,左值指的是表达式结束后仍然存在的持久化对象,右值是表达式结束后就不在存在的临时对象。所有的具名变量都是左值,而右值不具名。简单区分左值和右值:左值能够取到地址,而右值不能。int i = 0; // i是左值,0是右值class Widget;W getWidget(){ return Widget();}Widget w = ge...
2019-07-25 22:43:15
195
原创 [笔记]Lambda 表达式
Lambda 表达式Lambda表达式是C++中的语法糖。形式一般Lambda表达式形如:[capture](parameters)->return-type{body}如果没有参数,空的()可以省略。返回值也可以省略。举例:std::sort(x, y, [](float a, float b){return std::abs(a) < std::abs(b);});...
2019-07-22 20:53:24
394
原创 [笔记]2.智能指针
文章目录智能指针std::unique_ptrstd::shared_ptrstd::weak_ptr智能指针原生指针是一款很强大的工具,但是依据进数十年的经验,可以确定的一点是:稍有不慎,这 个工具就会反噬它的使用者。C++11标准中规定了四个智能指针:std::auto_ptr,std::unique_ptr,std::shared_ptr,std::weak_ptr.他们都是用来辅助...
2019-07-16 08:21:36
198
原创 [笔记]转向Modern C++
转向Modern C++优先使用auto推导类型而非显示类型声明auto变量需要在声明时进行初始化 int x1; // 未初始化的int变量,值的不确定的,可能为0,也可能是别的值 auto x2; // 错误,需要初始化 auto x3 = 0; // 完美auto使变量的声明变得简单,甚至仅仅被编译器知道的类型 aut...
2019-07-14 22:14:15
246
原创 [笔记]Modern CMake 3:基本介绍
Modern CMake 3:基本介绍组织项目结构CMake没有统一的项目结构,一些常用原则可以帮助我们组织更好的项目结构:项目内部能够十分方便的读取其他工程;避免项目结构冲突;并行构建.一个典型的例子(仅做参考),假设你的项目叫做project,你的库名为lib,可执行程序名为app:- project - .gitignore - README.md - LICE...
2019-06-08 21:02:15
852
原创 [笔记]Modern CMake 2:基本介绍
Modern CMake 2:基本介绍最低版本CMakeLists.txt的第一行通常都是:cmake_minimum_required(VERSION 3.1)请注意,cmake_minimun_required是不区分大小写的,但根据Modern CMake 1:Modern CMake简介中的正确模式所言,函数名需要使用小写。在CMake3.12中,对最低版本的要求可以是一个区间,...
2019-06-07 20:53:12
826
原创 [笔记]Modern CMake 1:Modern CMake简介
Modern CMake 1:Modern CMake简介运行CMake工程的流程标准选项能做的和不能做的CMake反模式CMake正确模式学习Modern CMake的总结和记录。什么是Modern CMake?指的是CMake3.1+,甚至是CMake3.14+!她是整洁,强大,优雅的,你可以花更多的精力在编码上。CMake3.11+的版本速度上有显著的提升。运行CMake工程的流程...
2019-06-02 11:53:31
2046
原创 [笔记]机器学习之Logistic回归
Logistic回归是一种广义的线性回归,他是一种分类分析方法。Logistic大概也是最常用的分类方法之一。sigmod函数 Logistic中因变量为二分类变量,某个概率作为方程的因变量估计值取值范围为0或者1,因此我们需要一个具有此性质的函数,于是,sigmod函数就进入了我们的视野。 sigmod函数的原型为: 当x=0时,sigmod函数的值为0.5;随...
2018-05-04 18:21:40
464
原创 [笔记]机器学习之线性回归、L1回归、L2回归
线性回归是机器学习领域里研究最多的算法,至今已有200年研究历史了。线性回归 线性回归可用一条线表示输入值X和输出值Y之间的关系,这条线的斜率的值,也叫系数。最简单的线性回归可表示为y=ax+b。机器学习的目的就是给定数据样本(x,y),利用学习得到a,b。得到a和b后,就可以给定已知的x求出未知的y,这就是机器学习的目的和意思。 进而我们可以推广到多个变量的情况,求得对于...
2018-04-26 20:01:56
8032
2
原创 机器学习之:K-近邻算法
k-近邻算法(简称kNN)是易于理解和实现的算法,也是非常容易掌握的一种机器学习算法。本文是学习Machine Learning in Action一书的成果,在此向著作此书的Peter Harrington 致敬。01 什么是kNN 简单说,kNN算法采用计算不同特征值之间的距离进行分类的算法。kNN算法的模型就是整个训练数据集。当需要对一个未知数据实例进行预测时,kNN算法...
2018-04-21 11:02:49
415
原创 使用Java操作Hadoop API
Hadoop的环境一旦搭建完成,我们就可以进行Hadoop应用开发了,可以进行Hadoop开发的程序语言有多种选择,比如JAVA,python,ruby等等。这里我们选择JAVA语言进行开发(语言无所谓好坏,看你擅长什么喜欢什么了)。因为我选择了JAVA语言,也就选择了eclipse开发工具,这里我用的是eclipse-java-oxygen-R-win32-x86_64,当然,Hadoo
2017-08-08 18:22:37
2818
1
原创 Windows下安装Hadoop(免cygwin)
Hadoop的使用一般都在linux下,但是开发和测试其实是可以在Windows系统上进行的,然而一般的安装方式都是使用cygwin模拟linux系统进行,然后其实已经有大牛解决了这个问题,就是编译出Hadoop在Windows上缺少的库,这样就直接可以不用cygiwn模拟linux了。准备材料1、jdk-8u144-windows-x642、hadoop-2.7.1.tar.gz3、hado
2017-08-08 17:59:20
1150
原创 PyQt5使用QPdfWriter方式写pdf文档
在我之前的一篇博客 Qt5使用QPdfWriter方式写pdf文档 中,详细了讲述了Qt5中使用QPdfWrite而不是使用QPrinter进行pdf文件输出的功能,这里补充一篇只是此功能移植到Python下的使用而已。 直接上代码:from PyQt5.QtCore import (QIODevice, QFile, Qt, QMarginsF, QRect)from PyQt5.QtGui
2017-05-21 11:36:07
6541
原创 PyQt5使用Designer设计UI的两种实现方式
在上一篇博客Python界面库-PyQt5初探中留了一个坑,那就是如何利用Qt的Designer设计出的UI文件。本篇博客就来研究这个问题。请注意:这里只是讲如何使用Ui文件,而不会讲如何设计Ui文件,如何需要学习如何设计Ui的话,请移步到Qt5 GUI编程之类的话题去。一、Qt的方式 使用过Qt,尤其是在visual studio中使用过Qt的应该知道,在编码的过程中Qt会对一些特殊文件进行
2017-05-21 11:21:58
56932
7
原创 Python界面库-PyQt5初探
也许因为本人经常 项目的问题,用到一个新的语言,不能写界面有种莫名的心慌,于是打算研究下Python的UI库。 首先是看了Python的事实上的标准UI库-tkinter,说实话,太丑了太难用了(个人感觉哈,原因后面说)。然后网上了解了情况,发现有PyGTK、wxPython、PyQt等等一大堆的库,各有各的好,各有各 的优势。等等,我看到了什么,PyQt?没错,真的是Qt的Python实现。看过
2017-05-21 08:57:24
32090
原创 Qt5使用QPdfWriter方式写pdf文档
今日,项目中要使用保存pdf文件的功能,于是打算使用Qt完成此功能。 网上搜索了发下,网上大部分前辈使用QPrinter即打印机的方式答应pdf。 这种方式,在qt4成为唯一的选择,然而身为qt5的版本,qt提供了一个独立的pdf文件写入方式, 那就是QPdfWriter。QPdfWriter写pdf的方式,网上很少东西,因此只能去研究文档,自己写了,以下是研究后使用的方案,写出来共大家参考一
2017-05-18 22:27:28
12871
9
原创 Python编辑器sublime text3环境配置
最近在玩Python,以此记录学历的一些东西,也算是激励自己吧。Python安装Python的截止目前最新版本是3.6.1,这里直接就安装最新版本了。 安装过程如下:这里我去除了不想用的部分,各位看官可以根据自己的需求进行选择 下一步:这里一定要勾选上Add Python to environmentvariable,意思是把Python加入到系统的环境遍历里,这样我们就可以直接在编辑器中访问了
2017-05-17 22:59:05
11132
1
原创 Doxgen文档注释:C++
Doxgen的使用包括两个方面,一个是代码的注释规则,另外一个是利用doxgen生成相应的HTML和chm文件。注释规则文件注释 /*! * @file core.h * @brief 核心类core * @author author * @date 2016-11-12
2016-11-12 13:39:38
2396
原创 Python初接触:SQLite和Excel操作
昨日,女票拿了一个Excel文档,里面有上万条数据要进行分析,刚开始一个字段分析,Excel用的不错,还能搞定,到后来两个字段的分析,还有区间比如年龄段的数据分析,实在是心疼她那么的辛苦,于是就想给她程序处理之。当然,我是一直C++和Qt的,当时就想直接Qt+sqlite3写入数据库,然后就各种数据查询就行了,可做起来却发现,她机器上没有Qt环境,没有C++编译器,得,如果配置环境也得几个小时了,可
2016-09-29 15:35:09
4728
1
原创 Qt Drag and Drop
Qt的Darg和Drop的不同的两部分,并且之间可以传递数据信息,是相当的好用的。一下分别讲述。DragDrag的部分,其实很简单,需要重新实现mousePressedEvent方法,数据的放在QMimeData方法中,而Drag事件只是一个简单的QDrag方法,具体实现如下:void XXXX::mousePressEvent(QMouseEvent* event){ QListWidg
2016-06-21 11:30:38
1620
原创 64位程序获取CPUID,不使用汇编指令
最近项目中想使用CPU,硬盘,网卡的ID进行加密授权验证,但是CPU的序列号获取网上都是一些使用内嵌汇编的方式,然后我的是64位程序,微软不支持内嵌汇编指令,只好研究替代方式了。进过查找,发现微软推出了__cpuid和__cpuidex函数替代了汇编指令,于是打算使用。 在网上找到有使用__cpuid获取厂商,family,CPU名称的代码,直接拿来使用了(^~^)。对于获取CPU的ID,网上一直
2016-04-22 12:02:16
9252
3
C语言18个经典问题答录
2011-02-21
java基础教程TXT版本
2010-07-27
win8.1安装Vs2010后无法使用net4
2014-07-25
TA创建的收藏夹 TA关注的收藏夹
TA关注的人