- 博客(125)
- 资源 (2)
- 收藏
- 关注

原创 Linux下快速部署DeepSeek大模型
随着deepseek-r1模型的应用越来越多,能够运行该模型的App或网站也是层出不穷,或许因为太过火热,总是卡在“服务器忙”。本着一名程序媛,能自己动手,就折腾不止的精神,今天就用一台Linux虚拟机快速部署下本地AI会话。
2025-02-28 09:29:45
353

原创 从零开始写一个Android待办事项ToDoListApp
记录下待办事项,时不时的去看一下,勾选掉已经完成,未完成暴露在面前就能分清轻重缓急而不至于漏掉。本着借鉴和越简单越好的精神,直接使用RecyclerView列表控件来完成待办事项的展示和记录。有时一个问题的处理可能需要的周期比较长,需要分步进行,再加上个子项目的功能。已经完成的事情可能还需要回查,那就除了待办列表外,再加上个已完成的列表在需要的时候可以展示。
2022-03-25 15:13:25
5652
1

原创 C#实现电脑桌面端的本地txt电子书阅读器
写在前面的话手机阅读是为了利用更多的碎片时间,但有时候桌面端阅读更方便,有需求就去找大牛的作品,试了几个,不是自己想要的,那就动手自己写一个了,满足基本功能的同时,也是一种自我学习和提高,分享出来给需要的朋友参考和下载使用。开源地址:https://github.com/zqunyan/DesktopReader常用功能目前已基本实现功能:电子书的打开,保存,删除关闭窗口记录当前阅...
2020-04-30 16:23:57
3232

原创 Github搭建个人云笔记
云笔记软件也用了好几个,总是这问题,那问题的没能一直使用。Github可以免费创建私有仓库,可以说对开发者来说就是一个最大的福音呀。今天就利用Github的私有仓库来搭建一个个人的云笔记。Github 登录Github,没有账号的赶紧去注册啦! 进入Setting 找到 SSH Keys 获取本地电脑的 SSH Key 绑定到 Github 账号上,怎么获取,下面Win...
2020-03-25 15:43:58
5089
原创 Python本地部署Stable Diffusion实现在纯CPU环境下的实现
最近在研究使用Stable Diffusion通过提示词生成图片的实现,因为电脑配置问题,反复尝试不同模型版本,效率上都不理想(主要是电脑太烂,只能纯CPU模式运行,大一点的模型,生成一张图片都要两三分钟,头大),最后找到一个相对满意的大佬基于SD1.5训练的,再被另一大佬导出为OpenVINO格式后,时间可控制在二十多秒生成一图,让SD能按照自己想要的效果生图。
2025-04-01 09:22:03
434
原创 简单几步写出让DeepSeek秒懂的高效指令
在使用AI进行搜索询问时,发现别人用DeepSeek能得到优质答案,而自已的回复却总是不尽人意,其实关键就在于提示词结构。这就像做菜需要食材配比,拆解AI提示词的黄金公式就是:好的提示词=明确需求+精准表达。
2025-03-17 16:43:45
259
原创 Dify开发Deepseek本地知识库检索应用
之前有使用`AnythingLLM`以及`Page Assist`来加载本地文档作为知识库进行上下文聊天背景,但效果不是很理想(也有可能没玩明白),今天使用本地部署的`Dify`自定义开发一个相同功能的应用。
2025-03-14 16:50:25
798
原创 Dify大语言模型应用开发平台的简单本地部署
如果你想自己编写一个应用来调用本地DeepSeek大模型来处理业务逻辑,创建属于你自己的界面设计,借助Dift应用开发平台无疑是最简单的实现,无代码可视化的界面设计,足够亲民了。
2025-03-13 15:38:57
343
原创 通过一个小故事理解什么是AI Agent智能体
随着DeepSeek的出现,大语言模型更是变得广为人知,人工智能除了机器学习,更主要的是能服务人类,像人类一样思考,成为真正的智能助手。AI Agent可能就扮演着这样一个角色……
2025-03-12 16:46:53
425
原创 Deepseek结合AnythingLLM搭建个人本地智能知识库
之前通过Ollama搭建了本地Deepseek大模型对话机制,但知识点仅限于Deepseek内部的数据,且目前数据截止时间为2024年7月,如果我们询问一些专业性比较强的内容,则Deepseek也显得无能为力,这就需要再给这个大脑外接一些文档数据了,通过AnythingLLM来Embedding外部文档。
2025-03-11 11:21:57
598
原创 DeepSeek大语言模型下几个常用术语
昨天刷B站看到复旦赵斌老师说的一句话“科幻电影里在人脑中植入芯片或许在当下无法实现,但当下可以借助AI人工智能实现人类第二脑”(大概是这个意思)
2025-03-07 11:37:19
572
原创 Python调用Ollama实现本地应用接入DeepSeek模型对话
默认使用Ollama部署完AI大模型后,即可通过终端进行交互式对话,但如何与其他应用进行集成呢?比如给对话加个聊天窗口?使用Python即可轻松实现。
2025-03-03 16:03:26
488
原创 Python爬取小说电子书全文并保存到本地
借助python的模块大全和便捷的网络访问,爬虫的不二选择呀,1 设定章节列表所在页面url2 检查列表所在的元素id或类名3 取得所有列表a链接并写入列表中带有分页的章节列表 - 有规律可循时根据章节链接的规律来自定义列表,就不再解析列表页的请求了。
2023-08-09 08:18:37
751
原创 Android数据库操作Greendao主键设置
在使用Greendao操作数据库时,对于主键的定义不是很明确,正常我们在使用数据库时会有大概三种情况下的主键定义。ID主键,唯一值主键,复合主键。第一种greendao就有,特别强调一个坑就是Long类型,第二种和第三种则可借助`indexes`的`unique`唯一索引来当作主键。
2022-11-18 16:55:26
2338
原创 Android自定义公共引入库(多个项目引入同一自定义框架类库)
Android开发快捷的一个地方就是可以引入别人写好的类库模块,供我们高效开发和使用。有时候我们自已开发的项目多了,也会有自己的一些类库包,但毕竟还在开发期,需要经常变更,所以还没办法直接上传到Maven中进行简单的参考引用。这时候就要用一些小技巧,把我们自己的公共类库引入到不同的专案中,需要修改时,只要修改公共类库一份代码,其他专案重新编译即可生效。
2022-11-10 15:15:59
967
原创 Android列表GridView定制长按弹出选择模式
在使用列表显示数据时,特别如GridView显示表格式数据时,经常需要多选文件进行操作,移动端一般为长按弹出选择模式并调出操作栏,然后多选后执行操作栏的相关功能。首先,改写数据类,在数据类中增加以上两个字段,用来控制列表项是否显示选择框,以及是否选中的状态,方便后续操作。然后,Item中增加选择框的图片。然后,Adapter增加选择模式的判断。最后,Activity中代码控制。最最后编写相应的控制按钮的事件功能即可,记得点击完按钮,退出选择模式。
2022-09-26 15:27:30
1414
原创 Android10剪贴板Clipboard的适配和解决方案
Android10(Q)开始对剪贴板增加了限制,当应用没有获取到焦点的时候,无法获取剪贴板内容。对于以上限制来说,于普通用户是百利而无一害的,毕竟我们在用手机的时候,复制个东西都可能被别人知道,想想还是挺可怕的。对于开发人员来说,想要再监听剪贴板的变化就要做出一些牺牲和适配了。方案一:在onResume中,通过post延时到界面拥有焦点时读取剪切板。方案二:借助悬浮窗开启前台服务监听。
2022-09-22 17:00:32
6597
1
原创 Android全屏显示和屏幕旋转的处理
全屏隐藏状态栏设置FLAG_FULLSCREEN或者调用全屏样式,设置windowNoTitle和android:windowFullscreen。默认当用户手机重力感应器打开后屏幕旋转时Activity的生命周期会重新加载,添加属性android:configChanges,有些应用需要固定屏幕方向可通过AndroidManifest属性控制,也可代码中强制设置为横竖屏。如果手机关闭了重力感应器依然希望`Activity`响应屏幕旋转则设置SCREEN_ORIENTATION_FULL_SENSOR。
2022-09-15 16:21:00
1735
原创 Android分区存储解决方案
Android 10增加了文件分区的功能,文件的访问特别是根目录下的访问受限,Android10不再允许直接读取文件根目录,即使动态申请也无效。但为了过度,可以使用临时的方案,即在`application`节点下增加`android:requestLegacyExternalStorage="true"`可关闭文件分区功能,但可能后期被取消(Android11强制开启分区存储,File操作方式将无效)。最好迁移到比较稳妥的 MdeiaStore 或者 SAF 方式中。
2022-09-08 11:36:43
1622
原创 Java Socket 循环接收数据readLine()阻塞问题解决办法
解决方案一 加换行符。上面提到的`readLine()`要换行符才知道传送完成,所以这个只能是服务器端发送数据给客户端时,结尾一定要加个`\r`或`\n`又或者使用 `println()` 发送数据,如果服务器客户端都是你维护,那这个解决方案最简单高效。解决方案二 使用Read() 方法。解决方案三 DataInputStream 这种方法好是好,但没有阻塞等待,会一直循环。(突然发现阻塞也是好东西呀)。...
2022-08-16 15:59:44
4105
原创 PythonGui之PyQt5的简单运用
PythonGui模块有很多,但论功能强大还是少不了Qt的支持。在VSCode中借助插件PYQT Integration可以方便的将UI画面转换成Python可识别的Qt语法。QApplication提供了整个图形界面程序的底层管理功能,比如初始化、程序入口参数的处理,用户事件(对界面的点击、输入、拖拽)分发给各个对应的控件,等等,所以必须在任何界面控件对象创建前,先创建它。进入QApplication的事件处理循环,接收用户的输入事件,并且分配给相应的对象去处理。控件要能全部显示在界面上,必须调用show
2022-08-02 15:42:51
352
原创 .NET Compact Framework 2.0
默认WINCE的PDA中会自带此组件,如果提示找不到,可自行安装 NETCFv2.wce5.armv4i.cab 连接数据库需要添加 dbnetlib 包 sql.wce5.armv4i.CAB
2022-07-01 14:32:33
490
原创 Xamarin利用VisualStudio开发Android项目
正常开发Android项目首选的是google自家的Android Studio,但有时候我们需要本地连接SqlServer等C#便捷功能时,Xamarin或许可以帮个忙,让用C#的你不用再重新学个新东西。有利有弊,没有好坏,只看需求和当下情况。重点是配置好Android SDK 还有 Emulator模拟器,至于具体项目开发时,业务逻辑还是C#来写的,用户界面上还是Android的那一套,两者的结合或许能碰撞出火花。...
2022-06-20 16:33:06
1642
原创 Android正则表达式匹配替换提取
正则基本语法在这里就不提了,一搜一堆,这里主要提下在Android中的具体应用。主要也就两个类,一个是 Pattern 类, 一个是 Matcher 类。Pattern类用于正则表达式的规则解析, Matcher 类用于处理匹配结果。
2022-04-25 16:31:44
3353
原创 AutoHotkey模拟创建Gui工具栏
在操作某些软件的时候,如Markdown神器Typora,在实际编写时,通过快捷键可以快速实现自己想要的效果,但有时候快捷键太多,也不是很方便,有个工具栏辅助快捷键会好很多。重点是要画出界面,然后界面上有按钮可以点击,最主要的是自定义工具栏不能把焦点从软件身上拿走,不然无法定位到需要的位置上。NoActivate 让当前活动窗口继续保持活动状态。
2022-01-14 16:13:29
1418
原创 Android图表HelloCharts的简单实例
效果图,数据可平移查看历史。直接在布局中加入相应的图表控件。图表上每一点的数据 PointValue(float x, float y) 第一个参数表示点的位置,第二个参数表示点上的数据。如果是多条折线,则需相同位置定义不同的PointValue。Line定义线条上的数据和颜色等,构造函数传入包含PointValue的列表,多条折线分别绑定不同的点数据列表。Axis定义X轴和Y轴的显示。包含了点数据列表的折线添加到 LineChartData 中并绑定给图表控件。实现平移必须设置视图Viewport大小。
2022-01-04 14:24:09
3944
5
原创 Android列表拖动排序侧滑删除
列表数据显示越来越多的使用RecyclerView来实现,借助ItemTouchHelper实现长按拖动,滑动删除也更加方便,自定义Callback,定义一个接口来回调Adapter中绑定的具体事件,重点重写几个方法getMovementFlags ,onMove ,onSwiped ,isItemViewSwipeEnabled ,在Callback中构造函数中传入继承了上面接口的Adapter以取得具体回调事件。Adapter中继承接口并实现具体方法内容。
2021-12-30 16:37:31
2245
原创 Java简单聊天室Socket服务器客户程序
要创建Socket连接,必须知道服务器在哪里以及用哪个端口来收发数据,也就是IP地址和端口号。使用 BufferedReader 从 Socket 上读取数据,用 PrintWriter 写数据到 Socket 上。服务端有一对Socket,服务器应用程序对特定端口创建出ServerSocket等待用户请求,服务器创建出与客户端通信的新的Socket。取得所有连线,群发消息,利用多线程循环监听客户端发来的消息,如果获取到消息就发送给所有用户。客户端开启新线程循环接收服务器消息。
2021-12-27 15:46:53
1059
原创 C#操作xml配置档案
我们可以使用系统默认的 `Properties.Settings` 配置档案,但可控制性不高,还是自己写比较方便。定义xml路径和文档树,加载xml档案,加载之前记得检查文件是否存在,创建xml档案及节点属性,如果文件不存在则创建档案,档案存在则直接加载。取得节点及获取节点属性和内容。
2021-12-22 16:08:52
482
原创 Activity活动页面跳转与Android页面传值
Android开发少不了的就是页面之间的跳转,或者想要呼叫打开其他应用等。Intent是Android程序中各组件之间进行交互的一种重要方式,不仅可以指明当前组件想要执行的运作,还可以在不同组件之间传递数据。显示Intent启动和隐式Intent启动,根据 action 和 category 来启动。使用隐式 Intent,我们不仅可以启动自己程序内的活动,还可以启动其他程序的活动,如网页浏览等。根据包名打开软件,根据类名打开界面。跳转界面传回返回值。Intent.putExtra 传值,Bundle 传值
2021-12-08 13:33:21
2415
原创 代码控制约束布局ConstraintLayout
实例化布局,同其他布局一样,new 一个根布局出来用来放置控件。控件的定位和约束控制需要借助 `ConstraintLayout.LayoutParams` 来设置,在设置约束时,要知道所参考的控件的 ID 值,如果是自定义的控件,记得给控件加上 `setId()` 。定位参考父布局,首先要拿到根布局的ID值,在xml中我们直接使用 parent 在代码里,也有相对应的ID值`ConstraintLayout.LayoutParams.PARENT_ID`。
2021-12-02 14:55:49
5715
原创 Android通过代码添加和调整布局控件
在实际开发中,有时候布局控件的添加和修改是需要动态调整的,参数的设置和方法的调用显得非常重要,可能xml布局文件中一个小功能,通过代码需要绕一圈来实现,如:margin 边距。动态添加布局。动态添加控件,重点在于控件的定位需要根据id值来控制其他的控件的参数设置根据需要来设定即可,基本上同xml布局控件时差不多。有时我们需要通过代码来调整控件的大小,需要借助其 LayoutParams 来实现动态调整其 width 和 height 的值。动态变更控件的位置,同样需要借助其 LayoutParams 来实现
2021-11-25 16:38:48
4127
原创 Android图片切片热点区域点击
Web的图片热点区域点击有时在Android某些界面也需要,可目前还没发现有好的控件可以实现这个功能,能想到的有两个方案:一个是图片当背景,然后画透明控件,然后通过布局控制来放到相应的位置上然后绑定控件的点击监听事件。有个问题就是有时位置会跑掉。另一个方案就是图片切片,然后组合,只要给需要的切片图片绑定点击监听事件即可。这种方案可行性较高。根据图片的具体尺寸来调整控件的大小使图片填充整个控件,通过控件链来达到图片的组合。
2021-11-24 17:01:28
1763
原创 Android弹窗ListPopupWindow的简单应用
常用的弹窗有菜单,或者Dialog,但更加人性化和可自定义的还是PopupWindow。如果只是展示列表数据或者弹窗列表选择,直接使用ListPopupWindow即可,因为里面已经有一个列表控件了,所以,不用再绑定布局,与普通的弹窗不一样的地方在于这里面是一个列表,所以要绑定Adapter进行展示。如果想要更加多样化的那就自定义一个布局,使用PopupWindow即可,也不复杂。继承BaseAdapter自定义Adapter丰富布局样式
2021-11-22 15:29:21
2906
原创 Android下选择文字自定义颜色切换样式 - RadioButton
在使用RadioButton作tab切换时,需要设置文本颜色切换,不然都不知道当前点击的是哪个,通过代码等引入样式时需要先自定义好颜色选择样式文件。res 目录下建立 color 目录, Resource type选择 Color 类型,上面的名称输入Color,也可以自定义,color 目录下建立 selector 样式文件,Activity引用通过 setTextColor() 方法引入,要使用 getColorStateList() 而不能用 getColor() 否则文本颜色不会切换
2021-11-10 15:17:07
2759
原创 AutoHotkey设置窗口透明度
为方便程式开发时比对代码或者参考写作,需要将参考的窗口设置一定的透明度以不影响下面的窗口查看。当然,你也可用来摸鱼。WinGet取得目标窗口的标识A及透明度T,透明度为空或者透明度减少到100时重新设置透明度,每次透明度减少50,WinSet设置窗口透明度。为了不占用太多热键,这里借用F11循环更改透明度。
2021-11-09 15:23:28
782
原创 ViewModel和MVP中的Presenter结合使用
ViewModel的简单使用,前面文章已经有提过,这里结合MVP一起使用,达到更高的解耦效果。定义ViewModel,Presenter中进行Model数据的访问,这里借助GreenDao对Sqlite进行数据库操作,如果是本地数据,直接写一个方法获取本地数据即可,Activity中实现数据的绑定和观察,借助LiveData变量的 setValue() 方法将 Presenter中获取到的Model数据赋值给ViewModel中的LiveData变量
2021-11-05 15:53:46
547
原创 ViewModel的简单实例
ViewModel类是被设计用来以可感知生命周期的方式存储和管理 UI 相关数据,数据持久,生命周期贯穿整个Activity,解耦合,可以Activity和其下Fragment之间数据共享。
2021-11-05 15:45:45
2584
原创 Markdown常用语法标记
为什么使用Markdown呢?取代记事本进行笔记的写作,样式太单一。读书笔记之类我还喜欢用脑图来记录,但脑图用来分析会比较好,很多文字的写作还是要用笔记的形式比较好。同时,Markdown的[toc]目录生成大纲的功能也很实用。至少现我更喜欢写笔记了……
2021-10-27 15:06:53
698
.NET Compact Framework 2.0.zip
2022-07-01
C# VisualStudio相关Git忽略文件 .gitignore
2020-04-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人