- 博客(55)
- 收藏
- 关注
原创 提示词工程实战指南:5大技巧大幅提升LLM输出质量
本文结合OpenAI API实战案例,详解如何通过系统化提示词设计优化大型语言模型(LLM)输出效果。包含少样本学习、结构化指令、思维链推理等核心技巧,附完整代码示例。
2025-09-02 17:07:33
847
原创 【万字真言】如何提升大模型抽取结构化信息的速度
本文探讨了如何提升Qwen3-4B大模型在信息抽取任务中的处理速度。文章分析了影响速度的两个关键因素:pydantic模型复杂度和模型自身的"思考深度",并提出了三种优化方案:部署量化模型、拆分pydantic模型实现并发调用、以及结合正则表达式预处理。通过对比测试不同量化版本的模型(FP16、NF4单量化和混合量化),发现FP16版本在速度和质量上表现最佳。文章还详细介绍了使用vLLM和llama.cpp框架部署量化模型的方法,指出llama.cpp部署的GGUF量化模型处理速度可达4
2025-08-28 16:39:22
924
原创 Langchain如何让大模型结构化输出指定的字段信息
本文探讨了如何实现文件信息智能抽取功能,主要解决四个核心问题:1)多格式文件转文本(已通过Umi-OCR和MarkItDown解决);2)使用LangChain框架实现结构化输出;3)提示词优化;4)效果排查与优化。重点介绍了四种结构化输出方法(Pydantic类、JSON Schema、StructuredOutputParser和PydanticOutputParser),并通过性能对比建议:模型支持结构化时首选Pydantic方法,否则选择PydanticOutputParser。文章还提供了复杂嵌套
2025-08-20 15:34:05
814
原创 Umi-OCR,完美解决企业OCR的核心痛点!!!【史上最全(万字)安装加测评】
Umi-OCR的实际安装加测评报告,可以很好的解决企业在实际ocr处理中的问题,比如:资源有限的情况下,如何进行本地OCR识别。
2025-08-13 16:11:02
825
原创 Fastapi文件上传那些事?
本文探讨了AI应用中处理用户上传文件的方案设计。通过FastAPI接口接收文件,区分纯文本文件(需处理编码格式)和结构化文件(如DOCX/XLSX),使用临时文件存储并自定义MultiFormatProcessor类提取文本。关键点包括:1)使用chardet检测TXT等文件的编码格式;2)DOCX/XLSX等结构化文件内置XML编码声明无需额外处理;3)设计ChatFile类验证文件属性并调用处理类。最终将文本转换为MD格式或langchain文档块,为后续AI处理提供结构化输入。
2025-08-04 17:01:50
983
原创 MarkItDown如何接入AI系统提供服务?
文章摘要:本文介绍了开源工具MarkItDown的使用方法,它能将各类文件转换为Markdown格式。作者详细记录了Windows安装过程(需Python3.10+,使用uv管理虚拟环境)和服务器部署步骤,测试了文本、PDF、Excel等文件转换效果。结果显示工具能有效处理文本类文件,但对图片类PDF和PPT支持有限。该工具特别适合需要将文档转换为LLM友好格式的开发场景。安装时建议根据需求选择依赖项,开发环境推荐使用uvadd记录依赖。
2025-07-30 14:44:40
916
原创 让UV管理一切!!!
一、遇到的问题自己在做AI开发的时候,先用的conda来管理虚拟环境,然后使用pip freeze > reqiurments来打包相关依赖。优点,conda环境可以让不同的项目有单独的虚拟环境,不会干扰每个项目,还可以多个项目共享一个conda环境。缺点:1.项目一旦大的话,python最麻烦的就是环境依赖,本来自己安装的核心依赖就30个,但是每个库又依赖别的子库,这样下来就有几百上千个依赖,非常麻烦。2.如果只删除主依赖,比如fastapi。但是它的其他子依赖不会被删除。
2025-07-24 15:47:13
953
原创 Ubantu本地部署dify,接入本地部署的langchain程序API服务。
本文通过Ubantu部署模型和向量模型可以很好的实现dify和langchain的结合
2025-06-24 16:25:12
817
原创 Windows安装Docker部署dify,接入阿里云api-key进行rag测试
基于windows10专业版安装docker部署dify,链接阿里云平台进行测试
2025-05-27 16:39:33
1483
2
原创 云服务器Ubuntu系统安装Docker教程和失败原因
我们直接复制https://download.docker.com/linux/ubuntu/gpg到浏览器会自己下载这个文件。所以只能用直接安装好的docker云服务器,不能在docker容器里面安装docker服务。新建/etc/apt//keyrings/docker.asc文件,把内容粘贴进去,保存退出。# 如果网络不好,这个文件可以手动下载,然后改为docker.asc即可。# 以便后续可以通过APT包管理器安装docker的相关软件包。因为云服务器本身就是容器,所以需要宿主机操作。
2025-05-26 14:26:18
685
原创 如何计算VLLM本地部署Qwen3-4B的GPU最小配置应该是多少?多人并发访问本地大模型的GPU配置应该怎么分配?
本文解决了很多VLLM的实际部署的硬件配置问题。
2025-05-23 18:54:47
1156
2
原创 超详细VLLM框架部署qwen3-4B加混合推理探索!!!
本文详细地使用VLLM框架本地部署qwen3-4B模型,混合推理如何关闭,open-webui框架的使用。
2025-05-23 15:36:02
2946
原创 手把手教你使用云服务器和部署相关环境!!!
本文介绍了如何通过蓝耘云服务器进行AI模型训练和开发环境的搭建。蓝耘云平台以其高性价比和强大的GPU算力资源,为AI客户和科研工作者提供了高效的算力云服务。文章详细说明了从注册蓝耘云服务、安装VScode和Python环境、配置SSH插件、连接蓝耘服务器到设置Anaconda环境的全过程。特别强调了使用Anaconda环境的重要性,以避免项目间的依赖冲突,并提供了具体的安装和配置步骤。
2025-05-22 15:10:17
823
原创 蓝耘Ubantu服务器测试最新 PP-StructureV3 教程
【全网最新最详细的测试ppstructureV3】-----------通过云服务器部署测试ppstructureV3项目。
2025-05-21 18:25:58
2055
1
原创 阿里云服务器Ubuntu的git clone失败问题解决方案
这里我们要科学上网访问github,然后把生成的ssh密钥设置好,登录GitHub → Settings → SSH and GPG keys → 粘贴公钥并保存。若配置了多个GitHub账户,需在 ~/.ssh/config 中为每个账户指定不同的 Host 别名和对应的私钥。日志中应显示 Offering public key: ~/.ssh/id_rsa,确认密钥被正确加载。3. 修改SSH配置文件以使用443端口。1. 确认SSH密钥是否存在并正确配置。4. 测试连接并调试。
2025-05-20 17:46:53
1088
2
原创 云服务器Ubuntu成功本地部署ppocr-gpu项目
本文详细介绍了在云服务器上安装和配置PaddleOCR GPU版本的步骤。首先,选择Anaconda3创建虚拟环境,并安装PaddlePaddle-GPU及相关依赖。重点在于根据系统支持的CUDA版本选择合适的PaddlePaddle-GPU版本,并通过conda安装,避免版本冲突。安装完成后,通过配置环境变量确保CUDA包的正确加载。最后,安装PaddleOCR库并进行测试,展示了如何使用PaddleOCR进行文字识别。整个过程强调了版本兼容性和环境配置的重要性,为在云服务器上部署PaddleOCR提供了
2025-05-20 15:52:16
1473
原创 数据结构字符串KMP匹配算法
一、什么是KMP匹配算法?和暴力算法有什么区别?KMP算法是一种高效的匹配算法,牺牲了一定空间去保存NEXT数组,但是能够提升了我们的匹配效率。暴力匹配主串指针需要回溯,KMP算法中主串指针不用回溯;二、next数组是什么?如何实现?当子串和主串不匹配的时候,值对应的索引的字符要移动到跟主串不匹配的字符对齐实现:公共前后缀:前面和后面是一样的;next = 公共前后缀 + 1;三、图示next数组的实现代码实现://next数组获取和输出 int *.
2022-05-16 14:07:38
306
1
原创 数据结构C语言暴力匹配字符串
一、我们的字符串结构体要包括什么?需要一个字符串数组地址和保存字符串长度的变量typedef struct String{ char* data; int len;}STRING;二、任务是什么?初始化字符串暴力匹配三、怎么初始化字符串?初始化字符串就是传进来一个字符串的首地址1.确定字符串结构体的首地址是否为/0,是就free掉2.确定传进来的字符串长度(除去结束的/0长度)3.根据确定的长度是否为0判断字符串结构体应该怎么做 如...
2022-05-13 09:30:44
519
1
原创 C语言快速排序
思路: 快速排序选取第0个元素为val; 通过FaindPos()找到第0个元素按升序排序所在的位置 则val已经在升序后所在位置pos val左边的元素和右边元素按照同样方法排序 FaindPos()函数(升序)思路:(先判断大小,再决定是移到还是赋值) 判断a[high]和val大小 如果a[high]>val,high--; 否则a[low]=a[high] 判断a[low]和val大小 .
2022-05-06 18:13:18
708
1
原创 数据结构(C语言)动态创建二叉树及三种方式输出二叉树
任务:动态创建一个如图所示的树,并且用三种方式(前、中、后序)输出结果;一、节点typedef struct Tree{ int data; struct Tree * plchild;//左指针域 struct Tree * prchild;//右指针域 }TREE,*PTREE;二、动态创建树函数思路: 创建树函数,本质上是递归,返回根节点的地址。 根节的点左树和右树也可以有左树和右树,意味着可以递归使用创建树函数; 如果不需要创建子树,输入
2022-05-06 16:49:29
3278
1
原创 数据结构(C语言)顺序表
一、首先什么是顺序表?顺序表是线性结构,以静态数组为内存的一种存储结构。有三个成员 数组最大长度:max_size 数组目前长度:size 数组名:listtypedef struct{ int list[max_size]; int size;}Sqlist;二、创建代码:void init_list(Sqlist * pL){ pL->size = 0; return;}三、插入指定位
2022-04-28 15:43:10
424
1
原创 数据结构(C语言)汉诺塔问题
伪算法if(n>1){ 把A的n-1个盘子借助C移到B 将A中的第N个盘子直接移到C 将B柱子上的N-1个盘子借助A移到C}代码实现:#include <stdio.h>void hannuota(int n,char A,char B,char C);int main(void){ int n; printf("请输入要移动的盘子数"); scanf("%d",&n); hannuota(n,'A','B','C')..
2022-04-28 09:58:59
1842
1
原创 数据结构(C语言)循环队列
循环队列1.静态队列为什么必须是循环队列因为不是循环队列,f只能增,会浪费存储空间2.循环队列需要几个参数来确定两个参数fontrear3.循环队列各个参数的含义两个参数在不同场合意义不一样1.对列初始化font和rear的值都是02.队列非空font是队列的第一个元素rear是队列的最后一个有效元素3.队列空font和rear值相等,但不一定都是04.循环队列入队和出队的伪算法入队:1.将值存入rear指向的数组2.rear = (rear+1)%数组长度 1.
2022-04-27 16:19:05
2196
2
原创 数据结构(C语言)动态栈的算法实现
首先我们看看什么是栈和动态栈?栈一种可以实现“先进后出”的存储结构;而动态栈是以链表节点为基本单位的;第二,动态空栈应该有什么结构?代码:一个动态栈的结构体需要一个pTop栈顶指针和一个pBottom栈底指针typedef struct Node{ int data; struct Node * pNext;}NODE,* PNODE;typedef struct Stack{ PNODE pTop; PNODE pBottom;}STACK,* PSTACK;.
2022-04-26 17:15:39
1959
1
原创 数据结构(C语言)单链表的几个算法
上篇写道了创建单链表和遍历单链表的实现现在写几个常见的算法实现;主函数代码:#include <stdio.h>#include <malloc.h>#include <stdlib.h>typedef struct Node{ int data; struct Node * pNext;}NODE,* PNODE;PNODE create_list(void);void traverse_list(PNODE pHead);int..
2022-04-26 11:16:41
1432
1
原创 数据结构(C语言)的单链表的创建和遍历算法实现
思路:两个功能函数的思路创建单链表的功能函数的思路 1.创建一个头节点,并且判断是否成功; 2.当节点数只有头节点的时候,尾节点也是头节点,所以创建一个尾节点 PNODE pTail = pHead; 这个尾节点用来链接后面新的节点的指针域;头节点的指针用来返回; 3.通过循环创建新的节点,都需要判断是否创建成功。每个新节点的数值域赋 临时值val; 链接新的节点和头节点: pTail->pNext = pNew
2022-04-25 15:32:38
1438
1
原创 C语言简易的学生管理系统,输入,按照成绩排序,输出
#include <stdio.h>#include <malloc.h>void IntStudent(struct Student * p,int len);void sort(struct Student *p,int len);void prArr(struct Student *p,int len);struct Student{ int age; char name[20]; int sorce;};int main(void){ int n.
2022-04-22 17:22:32
1525
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人