- 博客(222)
- 资源 (4)
- 收藏
- 关注
原创 使用LangSmith跟踪大模型应用
8.也可以在入口函数rag上添加traceable,这样可以将执行过程中的所有trace组合成一个整体;注册并登录https://smith.langchain.com/,然后创建api key;7.登录https://smith.langchain.com/查看记录的trace;5.构建prompt message。1.安装Lang smith包。2.创建api key;3.设置相应的环境变量。
2025-06-12 08:30:00
69
原创 在LangChain中以OpenAI兼容模式调用本地DeepSeek
Ollama本身提供了兼容OpenAI的调用方式的,同时LangChain也支持调用OpenAI;Langchain中提供了init_chat_model来统一大部分模型的调用,但是不能设置base url和api key;但是LangChain提供了ChatOpenAI来支持OpenAI的集成;二、在LangChain中以OpenAI兼容模型调用DeepSeek;一、以OpenAI兼容模型调用Ollama中的DeepSeek。2.通过OpenAI调用本地的DeepSeek大模型;四、以流式方式进行调用。
2025-06-10 08:31:53
97
原创 Langchain+Ollama+Chroma调用本地Deepseek实现简单的RAG应用
6.定义state类,记录程序执行过程中的状态;7.定义retrieve和generate步骤;1.安装必要的python package;3.将加载的文档保存到Chroma中;8.通过graph构建程序的执行流程;4.实例化Deepseek模型;2.加载对应的pdf内容;5.构建prompt;9.执行并查看返回结果。
2025-05-30 08:26:29
408
原创 LangChain+Ollama调用本地Deepseek大模型
5.通过tool标记函数,并使用bind_tools来绑定函数,来实现tools的调用;2.我们直接使用ChatOllama实例化模型,并通过invoke进行调用;4.我们可以直接使用chain链接prompt和llm进行调用;1.安装ollama的package包;3.通过流式方式调用大模型;
2025-05-29 08:20:12
401
原创 Milvus单机模式安装和试用
5.通过tool标记函数,并使用bind_tools来绑定函数,来实现tools的调用;2.我们直接使用ChatOllama实例化模型,并通过invoke进行调用;4.我们可以直接使用chain链接prompt和llm进行调用;1.安装ollama的package包;3.通过流式方式调用大模型;
2025-05-29 08:17:59
320
原创 Chroma中的数据查询
我们可以通过query api,设置不同的条件来查询数据;我们通过设置不同的参数使用get api获取数据记录;2.通过query api查询数据。1.通过get api查询数据。query的api定义如下。get api的定义如下。
2025-05-27 06:55:48
299
原创 Chroma中的数据操作
可以使用delete删除记录,可以通过ids或者where对metadatas进行filtere;添加数据的时候,也可以不保存document到Chroma中,而是直接传递embeddings。我们可以直接使用add添加数据,并使用count查看集合中数据记录数量的变化;添加数据的时候,可以使用metadatas为document添加额外的信息;使用update可以更新除了id之外的所有字段;也可以使用upsert进行更新;
2025-05-27 06:54:06
308
原创 Chroma的Collection操作
创建collection的时候,我们可以指定一个name,同时可以指定一个embedding function,默认的embedding function是all-MiniLM-L6-v2。可以通过get_or_create_collection获取到对应的collection对象,如果不存在怎会新建一个;创建collection的时候,也可以通过metadata添加一些自定义的元数据;可以通过get_collection获取到对应的collection对象;count返回集合里记录的数量。
2025-05-26 07:30:58
226
原创 安装并使用Python连接Chroma
3.创建chroma的client并链接。4.创建一个collection。5.添加一些文本文档到集合中。2.安装chroma。
2025-05-26 07:29:13
149
原创 使用Python调用Ollama的API
我们定义了一个加法函数和一个减法函数,然后通过tool参数传递个qwen大模型;直接调用generate并使用deepseek-r1模型生成一段文本;使用deepseek-r1模型并调用generate;
2025-05-07 06:07:54
395
原创 在windows上安装Ollama和Deepseek
Ollama安装不需要管理员,默认安装在当前用户的主目录中,需要至少4GB的空间来安装二进制文件。安装好Ollama后,我们需要额外的空间来存储大型语言模型,这些模型的大小可以达到数十GB到数百GB。如果我们的主目录没有足够的空间,我们就需要更改安装位置和模型的存储位置。安装olama for Windows后,Ollama将在后台运行,Ollama命令行可以在cmd、powershell或您喜欢的终端应用程序中使用。修改模型存放位置,只需要添加OLLAMA_MODELS环境变量指定对应的目录即可;
2025-04-30 06:20:31
309
原创 Ubuntu修改双系统默认启动顺序
update-grub 此命令会使用以上两个文件生成最终的配置文件/boot/grub/grub.cfg;/etc/grub.d 目录中放置了一些脚本,用于生成/boot/grub/grub.cfg文件;/etc/default/grub 提供了一些简单的配置选项来控制grub的执行流程;GRUB_DEFAULT设置默认启动的系统菜单选项,默认是从0开始的;1.打开grub的默认启动配置文件。4.grub配置的生成。
2024-08-06 07:00:00
2271
原创 数据的标准化和归一化
我们使用sklearn内置的MinMaxScaler进行处理,可以看到处理之后最小值都变成了0,最大值都变成了1,这种缩放的副作用是标准差都非常小。前面我们已经学习了识别数据缺失值已经对缺失值进行处理的方法,但是KNN的准确率都不是很高,今天我们继续进行数据探索进一步增强机器学习流水线;现在我们对数据集的所有字段都进行z分数计算,然后通过直方图可以看到,横轴的数值分布在-2.5到7.5之间;在直方图中,让所有的列共享数据轴,可以看到所有的数据尺寸都是不一样的,有一些列已经无法显示图形了;
2023-12-05 06:44:47
290
原创 处理数据中的缺失值--填充缺失值
实际的训练过程中,是需要首先划分数据集,如果我们在应用算法之前直接对整个数据集填充值,我们就是在作弊,模型其实学不到任何模式。填充指的是利用现有知识/数据来确定缺失的数量值并填充的行为。如果我们直接使用0来填充缺失值,同样使用KNN模型得到的准确率是0.7357185298361768,有所降低的;我们使用列的均值进行填充之后,可以看到缺失值的行数为0,同时可以看到5行对应字段的值都是121.686763;可以看到所有的列都已经填充,sklearn的填充处理类确实减少了繁琐的填充工作;
2023-11-28 06:03:32
422
原创 处理数据中的缺失值--删除缺少值的行
处理缺失数据最简单的方式就是丢弃数据行,我们使用dropna方法进行处理,可以看到将近丢弃一半的数据;从机器学习的角度考虑,尽管数据都有值、很干净,但是我们没有利用尽可能多的数据,忽略了一半以上的观察值。使用处理过的数据训练scikit-learn的K最近邻(KNN,k-nearest neighbor)分类模型,可以看到最好的邻居数是7个,此时KNN模型的准确率是74.5%;替换所有的缺失字段,可以看到不同字段缺失值的情况是不一样的;通过以下可以看到各个字段的均值处理前后的大小。❏ 删除缺少值的行;
2023-11-27 06:29:00
525
原创 识别数据中的缺失值
通过数据的缺失值,我们可以更好地明白如何使用真实世界中的数据。分析数据并了解缺失的数据是什么至关重要,这样才可以决定下一步如何处理这些缺失值。查看onset_diabetes列的相关性数值,可以看到plasma_glucose_concentration是预测糖尿病的重要变量;通过以下统计数据中的各个字段的min值,可以看到很多列的最小值是0,可以这些字段使用0填充了确实字段;可以看到数据集中没有数据点是空的(缺失值);❏ unknown或Unknown(类别型)可以看到糖尿病的发病率是65%;
2023-11-24 09:14:16
160
原创 数据的4个等级
然而我们需要知道,虽然这些值是数,但每个数其实代表的是类别,所以该数据是定性的,更具体地说,是属于定序等级。定距及更高等级的一大好处是,我们可以使用散点图:在两个轴上绘制两列数据,将数据点可视化为图像中真正的点。在定距等级,数值数据不仅可以像定序等级的数据一样排序,而且值之间的差异也有意义。定类等级是数据的第一个等级,其结构最弱。直方图是条形图的“近亲”,用不同的桶包含不同的数据,对数据的频率进行可视化。除了可以将数据分为定量和定性的,数据还可以分为以下4个等级,每个等级都有不同的控制和数学操作等级;
2023-11-22 07:15:53
1478
原创 定量数据和定性数据
Pandas认为,数据只有3个定量列:Step、Union Code和Extended Step(步进、工会代码和增强步进)。我们清理一下数据,移除工资前面的美元符号,保证数据类型正确。最值得注意的特征是一个定量列Biweekly High Rate(双周最高工资)和一个定性列Grade(工作种类);.info()可以了解数据的列信息以及每列非null的行数;定量数据本质上是数值,应该是衡量某样东西的数量。定性数据本质上是类别,应该是描述某样东西的性质。全部的数据列如下,其中既有定性列也有定量列;
2023-11-19 18:30:45
237
原创 Java之多线程的同步和死锁
我们可以通过在getInstance方法中使用synchronized添加同步代码块,同时进行双重的null检查避免无谓的锁占用;设计模式中的单例模式的懒汉方式会存在多线程的安全问题;多线程的同步可能会出现死锁;死锁的出现是由于发生死锁的两个线程持有彼此需要的锁资源,导致双方都无法执行只能等待;以下测试代码以构成一个商品的两个组件为例,组装商品我们可以从APart开始,也可以从BPart开始;除了使用synchronized之外,也可以使用JUC提供的Lock来实现线程的同步;
2023-07-11 21:36:42
245
原创 Java之使用synchronized解决多线程安全性问题
当多个线程并发访问某个Java对象(Object)时,无论系统如何调度这些线程,也无论这些线程将如何交替操作,这个对象都能表现出一致的、正确的行为,那么对这个对象的操作是线程安全的。如果这个对象表现出不一致的、错误的行为,那么对这个对象的操作不是线程安全的,发生了线程的安全问题。添加在方法前边时,其默认获得的锁对象跟具体的方法有关系,如果是实例方法则是this,如果是静态方法则是对应类的class对象;平时生活中的买票场景就是一个典型的线程安全的场景;
2023-07-04 07:31:12
238
原创 Java之thread常用成员
线程的yield(让步)操作的作用是让目前正在执行的线程放弃当前的执行,让出CPU的执行权限,使得CPU去执行其他的线程。处于让步状态的JVM层面的线程状态仍然是RUNNABLE状态,但是该线程所对应的操作系统层面的线程从状态上来说会从执行状态变成就绪状态。线程在yield时,线程放弃和重占CPU的时间是不确定的,可能是刚刚放弃CPU,马上又获得CPU执行权限,重新开始执行。调用join()方法的语句可以理解为合并点,合并的本质是:线程A需要在合并点等待,一直等到线程B执行完成,或者等待超时。
2023-06-28 08:33:15
157
原创 Ubuntu和MIUI时间显示秒数字
小米手机(MIUI13)要展示时间到分秒可以打开时间悬浮窗功能即可。Ubuntu(23.04)状态栏的时间显示秒,则需要执行以下命令。
2023-06-07 18:28:22
1006
原创 Linux之从进程角度来理解文件描述符
文件描述符是一个非负整数,而内核需要通过这个文件描述符才可以访问文件。当我们在系统中打开已有的文件或新建文件时,内核每次都会给特定的进程返回一个文件描述符,当进程需要对文件进行读或写操作时,都要依赖这个文件描述符进行。通过查看/proc/PID号/fd/目录下的文件,就可以查看每个进程拥有的所有文件描述符。我们touch一个文件,并将其文件描述符设置为10,并通过这个文件描述符来操作文件;当打开文件时系统内核就会为特定的进程自动创建对应的文件描述符。我们也可以手动定义文件描述符,并通过文件描述符操作文件;
2023-05-28 06:12:09
276
原创 解决xfreerdp在Ubuntu22.10无法退出全屏问题
最近升级了一下Ubuntu到22.10,然后发现xfreerdp链接上远程计算机后,无法通过快捷键退出全屏,我们可以在terminal命令中添加dynamic-resolution 参数即可;
2023-05-23 08:50:04
1315
原创 解决Ubuntu 23.04无法登陆FortiClicent VPN的问题
升级到Ubuntu23.04之后FortiClient VPN无法登陆使用,经过测试摸索发现如下解决方案。
2023-05-23 08:47:28
1176
原创 解决IntelliJ 中reload maven module 导致 Target bytecode Version重置
【代码】解决IntelliJ 中reload maven module 导致 Target bytecode Version重置。
2023-05-14 12:52:33
285
原创 解决IDEA中创建Maven项目慢的问题
通过idea创建maven项目的时候,需要等好长时间才能创建完毕,我摸索了很久,可以通过以下方式加快maven项目创建的速度。注意,是在settings.xml文件中结点中添加。
2023-05-14 12:39:33
539
原创 解决vscode控制台中文乱码问题
Ctrl + R输入intl.cpl命令,在弹出的框体中选择Admintrative标签,然后选择change system local,然后选中最下方的复选框 “Beta:Use Unicode UTF-8 for worldwide language support”,然后重启操作系统即可;我这里选择的是cmd.exe,既然输出中文乱码,那么肯定跟cmd.exe的编码有关系;使用visual studio code的terminal编译程序,输出的中文是乱码;查看当前控制台程序的编码格式。
2023-05-13 17:53:55
2041
1
原创 ZIP64压缩扩展的兼容性问题
ZIP64作为一个后来的扩展,虽然有很长的时间了,但是还是有一些操作系统或者开发语言的类库都不支持,从而会造成兼容性问题,最好是Zip64Option.AsNecessary选项,只有在必要的时候自动使用ZIP64位扩展;DotNetZip 是一个快速、免费的类库和工具集,用于处理 zip 文件。zip64 格式是标准 zip 格式的扩展,实际上消除了 zip 存档中文件大小和数量的限制。.NET提供了以下几个类来完成压缩功能,但是没有找到ZIP64的选项;二、.NET提供的ZIP压缩能力。
2023-03-21 13:32:05
893
原创 使用JsonTextReader提高Json.NET反序列化的性能
在服务器的文件系统上有一个业务生成的BigTable.json文件,其可能包含的JSON字符串很大,同时里边的集合会包含很多的记录;我们使用以下的代码来反序列化,虽然使用了异步的ReadAllTextAsync来读取文件,但是还是需要将整个的文件内容都读取到内存中,这样会极大的占用服务器内存,同时分配太多对象或分配非常大的对象会导致垃圾收集减慢甚至停止应用程序;通过以上分析,我们可以直接使用二进制的文件流来读取文件,并将它传递给JsonTextReader,这样就可以实现小片段的读取并序列化;
2023-02-24 08:27:09
405
原创 elasticsearch之使用正则表达式自定义分词逻辑
elasticsearch在索引和搜索之前都需要对输入的文本进行分词,elasticsearch提供的pattern analyzer使得我们可以通过正则表达式的简单方式来定义分隔符,从而达到自定义分词的处理逻辑;elasticsearch的Pattern Analyzer使用的Java Regular Expressions,只有了解Java中一些常用的正则表达式才能更好的自定义pattern analyzer;我们可以通过以下方式自定pattern analyzer,并设置分隔符为所有的空格符号;
2023-02-21 08:49:46
1139
原创 elasticsearch之日期类型有点怪
通过以下代码可以看到,左边界的值会覆盖new MutableDateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeZone.UTC)对应的位置的数字,右边界的值会覆盖ew MutableDateTime(1970, 1, 1, 23, 59, 59, 999, DateTimeZone.UTC)对应位置的数字;索引数据的时候,elasticsearch内部会基于UTC时间,将传入的数据转化为基于milliseconds-since-the-epoch的一个长整型数字;
2023-02-15 08:52:26
1428
原创 elasticsearch之search template
elasticsearch提供了search template功能,其会在实际执行查询之前,对search template进行预处理并将参数填充到template中。我们新建id为search_template_test.match_name的search template,其主要是查询match 字段name;执行search template也支持使用profile来调试查看elasticsearch的查询执行情况;_search/template使用search template进行搜索;
2023-01-19 08:45:39
1788
童继龙的ERP顾问感悟.pdf
2010-04-03
ES2015规范
2016-05-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人