用 Python 搭一个本地 AI 知识库

人工智能
本文使用的技术栈为python+qdrant(docker 镜像)+ollama(使用嵌入模型 bge-m3)+deepseek(兼容 openai 接口)。如果连大模型都想用本地部署的,只需要用ollama再下载个deepseek大模型,将配置改成本地即可。 预先启动向量数据库及嵌入模型服务。 $ …...
Read more →

大模型使用工具的能力怎么来的

人工智能
大模型会提供一个叫Tool Calls(也有的叫Function Calls)的功能,看起来很神奇,实际上就是LLM根据对话内容提取出需要使用的工具及其参数,再将其以结构化的形式返回给客户端,客户端通过响应的内容判断是否存在“使用工具”这个操作,如果存在,则从中获取所需使用的“工具名”及“参数”来使 …...
Read more →

随便唠唠异步

操作系统
再看操作系统原理时,又“吸收”了一个名词“页缓存”,跟ChatGPT扯了下之后,就有了更深刻的理解,于是灵光一现问了以下问题: 异步I/O的本质就是提交I/O后,不会阻塞调用者,并在I/O完成后通知调用者结果。 现在分析一下我的问题。在用户层面实现I/O函数,并通过用户层面实现的“页缓存”(本质上就 …...
Read more →

数组越界导致的函数调用

编译原理
C语言中数组越界是未定义行为,因此以下代码在不同的编译器或者不同版本的同一编译器行为是不可预测的。在gcc某些版本中,以下代码会出现有意思的行为。 // demo.c #include <stdio.h> #include <stdlib.h> void jmp() { …...
Read more →

浅谈 FrankenPHP 对 PHP 的影响

PHP
今年PHP基金会宣布了一件事30 years of PHP: FrankenPHP is now part of the PHP organisation。那么FrankenPHP是什么?为何得到青睐? 示例 对官网的自定义示例进行了一点调整,毕竟那个有点正式框架的影子,刚开始也让我有点摸不着头脑。 …...
Read more →