前言:本文涉及到的所有代码均可从LangChain教程中获取
一、LangChain组件介绍与快速入门1. Langchain简介LangChain 是一个开源的 Python AI 应用开发框架, 它提供了构建基于大模型的 AI 应用所需的模块和工具。通过 LangChain, 开发者可以轻松地与大型语言模型 (LLM) 集成, 完成文本生成、问答、翻译、对话等任务。LangChain 降低了 AI 应用开发的门槛, 让任何人都可以基于 LLM 构建属于自己的创意应用。
2. LangChain 特性(1). LLM 和提示(Prompt)
API 抽象与统一接口LangChain 通过 Models 组件(如 LLMs、Chat Models、Embeddings Models)为不同大模型(如 OpenAI、DeepSeek、阿里通义等)提供统一接口。开发者无需关心底层 API 差异,只需通过配置即可切换模型。例如,使用阿里通义模型时,只需设置 DASHSCOPE_API_KEY 并调用 ChatTongyi 类。
Prompt 模板管理LangChain 的 Prompt ...
Project
未读一、软件安装前言:
./代表ragflow项目路径
版本以及硬件需求
CPU ≥ 4 coresRAM ≥ 16 GBDisk ≥ 50 GBDocker >= 24.0.0 & Docker Compose >= v2.26.1node >= 18.20.1python < 3.12
官方教程(ARM64): 本教程参考官方部署文档
1. 安装Homebrew(Mac的软件管家)
逐行执行:
123# 先给终端开权限(防止卡死)sudo chmod -R 755 /usr/local/bin # 输入密码后回车/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
常见问题:
报错Failed to connect to raw.githubusercontent.com → 开科学上网
报错Permission denied → 前面chmod命令 ...
Project
未读一、Ollama是啥?—— 一个让电脑变“AI脑”的神器
人话版:Ollama就像大模型的“万能插座”,能让你在本地电脑上插拔各种AI模型(比如Llama、Qwen、DeepSeek),还不用写代码!
官方定义:开源工具,支持一键下载、运行、管理大语言模型,兼容Windows/Mac/Linux,连你家路由器都能跑(只要内存够)!
为啥用它:隐私安全(数据不出门)、省钱(不用买云服务)、装X利器(“看,我的电脑会写诗!”)
二、安装Ollama——比泡面还简单Step 1: 下载安装包官网直达:Ollama,点击“Download”按钮,选你的操作系统(Win/Mac/Linux三选一)
Windows用户:双击.exe文件,一路“Next”到底,连你家猫都能装(前提是它不乱踩键盘)
Mac用户:拖进“应用程序”文件夹,比拉黑前男友微信还容易
Linux用户:复制粘贴一行代码搞定👇:
1curl -fsSL https://ollama.com/install.sh | sh # 连sudo都不需要,感动吗?
Step 1: 验证 ...
Project
未读Hexo是一个快速、简洁且高效的博客框架。 Hexo 使用 Markdown(或其他标记语言)解析文章,在几秒内,即可利用现有的主题生成静态网页。
前置条件: 需要您的机器上安装好Git和Node.js
准备工作注:前两步可以直接看官方文档:hexo安装部署
1. hexo建站
在终端执行以下命令来安装 Hexo:
1npm install hexo-cli -g
选择一个目录来存放你的博客文件,并在该目录下初始化 Hexo:
123hexo init myblogcd myblognpm install
在项目根目录下执行以下命令来生成静态文件并启动本地服务器:
123hexo clean # 清除缓存文件hexo g # 生成静态文件hexo s # 启动本地服务器
随后可以打开浏览器访问 http://localhost:4000/,如果看到博客页面,说明本地搭建成功。
如果您觉得官方的主题不够美观,你可以从 Hexo 主题官网 下载并安装你喜欢的主题:
1npm install --save hexo-theme-name
然后在 _config.yml文件中指定 ...
有趣的现象:在Java有一个非常有意思的现象,当我们定义一个浮点数,然后直接打印出来的时候,会发现打印出来的结果就是我们定义的值,但是如果这个浮点数参数了运算,我们打印运算后结果的时候,有时候输出的结果是存储再计算机中真实的值,但是有时后又不是,可以参考下面的例子,这是为什么呢?
1234567double a = 0.1;double b = 0.2;double c = 2.5;System.out.println(a); // 0.1System.out.println(a + b); // 0.30000000000000004System.out.println(a + c); // 2.6
转换原理:之所以会出现上面的这种情况,其实是java在把计算机中存储的二进制数据转换成十进制的时候,会把转换后结果的误差限定在**一个ULP(Unit in the Last Place)**的范围内,这样做的效果就是 可以使用最少的位数精确的表达出来浮点数的数值。下面是详细的介绍:
1. Java打印浮点数的流程:众所周知,Java中想要使用print函数进行输出的话,需要把对应的数 ...
1. 两个浮点数是否可以直接比较大小?
直接比较的可行性
大小比较(>、<、>=、<=):可以直接使用,因为浮点数的有序性保证了大小关系的正确性。
示例:3.14 > 2.71 或 a < b 的运算结果是可靠的。
相等性比较(==)的风险:
精度陷阱:浮点数的二进制存储可能导致微小误差,例如:
10.1 + 0.2 == 0.3 // 在多数语言中返回 False(实际值是 0.30000000000000004)
我们可以看到,两个浮点数由于存在精度问题,所以是无法直接判断是否相等的,那么这是为什么呢,又应该如何解决呢?
2. 浮点数出现精度问题的原因:浮点数(例如 double 类型)在计算机中是按照 IEEE 754 标准存储的。这种表示方式由三个部分组成:
符号位(Sign bit):1 位,用于表示正负数。0 表示正数,1 表示负数。
指数部分(Exponent):用于表示数值的大小范围。对于 double 类型,占用 11 位。
尾数部分(Mantissa or Fraction):用于表 ...