从十年 Java 到智能体开发:我的全套 Python 智能体实战课程(第二帖)2-创建项目 1.申请大模型的key我用的是deepseekDeepSeek2.在pycharm中创建项目环境选择uv我的项目名叫DocMind-v1正常创建完项目是会有.venv文件夹的没有的话终端执行一下 uv venv3.项目终端执行uv add langchain langchain-community langchain-text-splitters langchain-openai pypdf chromadb langchain-chroma pydantic python-dotenv核心框架层LangChain 生态库作用langchainLangChain 的核心库提供链Chain、智能体Agent、记忆Memory等高层抽象是搭建整个应用的骨架。langchain-coreLangChain 的基础抽象层定义了Runnable、BaseMessage、BaseLLM等核心接口。通常作为依赖自动安装无需显式关注。langchain-community第三方集成仓库包含大量社区贡献的组件如各种文档加载器、向量存储封装、工具等。langchain-text-splitters文本分割器负责将长文档如 PDF 的几十页内容按语义或段落切割成小块chunks以便后续向量化和检索。langchain-openaiLangChain 与OpenAI的官方集成包提供ChatOpenAI聊天模型和OpenAIEmbeddings嵌入模型接口。langchain-chromaLangChain 与Chroma的集成包提供与 Chroma 向量数据库交互的标准化 API。️ 数据存储与检索层库作用chromadbChroma 向量数据库的 Python 客户端。负责存储文档的嵌入向量embedding并支持向量相似度搜索。它是 RAG 应用的记忆库。 文档处理层库作用pypdfPDF 解析库用于从 PDF 文件中提取文本内容。你很可能用它来读取本地或网络的 PDF 文档作为知识源。⚙️ 基础工具与配置层库作用pydantic数据验证库LangChain 大量使用它来定义和校验数据结构如BaseModel子类确保配置和输入输出符合预期。python-dotenv环境变量管理从.env文件中加载配置如OPENAI_API_KEY避免将敏感信息硬编码在代码里。其中Chroma是一个开源的向量数据库Vector Database专门为 AI 应用尤其是大语言模型设计。适合在工作室里快速做模型后期我们会换成milvus。4.在项目根目录创建.env内容为你的api_key我用的deepseekDEEPSEEK_API_KEYsk-你的DeepSeek密钥5.在ollama中搜索一个embdding模型安装接下来做文本向量化使用我是8G显存所以选了个4b模型在cmd中执行目录随意ollama pull qwen3-embedding:4b

相关新闻

最新新闻

Windows系统盘空间管理:从基础原理到开发环境优化实战

Windows系统盘空间管理:从基础原理到开发环境优化实战

最近在整理电脑时发现C盘空间告急,系统频繁弹出磁盘空间不足的警告。作为开发者,这不仅影响开发环境运行效率,更可能导致编译失败、项目无法正常启动。本文将系统梳理Windows系统盘空间管理的完整解决方案,从快速清理到深度优化&a…

2026/7/13 23:36:35
eNSP 1.2.00.510 路由器CLI“###”问题:3步定位IP冲突与防火墙配置

eNSP 1.2.00.510 路由器CLI“###”问题:3步定位IP冲突与防火墙配置

eNSP路由器CLI界面"###"故障:从现象到根因的系统排查指南当你在eNSP模拟器中启动AR路由器,却发现命令行界面(CLI)不断输出"###"符号而无法正常交互时,这种看似简单的现象往往隐藏着复杂的网络配置问题。本文将带你深入剖…

2026/7/13 23:36:35
ESP-NOW 与 Wi-Fi 共存配置指南:ESP32 同时连接路由器并组网(3步解决冲突)

ESP-NOW 与 Wi-Fi 共存配置指南:ESP32 同时连接路由器并组网(3步解决冲突)

ESP32双模通信实战:ESP-NOW与Wi-Fi共存配置全解析在物联网设备开发中,ESP32因其出色的无线通信能力而广受欢迎。但当我们需要同时使用ESP-NOW点对点通信和Wi-Fi连接云平台时,往往会遇到配置冲突的问题。本文将深入解析如何实现ESP32上ESP-NOW…

2026/7/13 23:36:35
C++17 std::optional:优雅处理“可能有值”场景的类型安全方案

C++17 std::optional:优雅处理“可能有值”场景的类型安全方案

1. 项目概述:为什么我们需要 std::optional?在 C 编程的日常里,我们经常遇到一个经典难题:一个函数执行后,其结果可能是一个有效的值,也可能因为某种原因(比如查找失败、解析错误、资源不可用&a…

2026/7/13 23:36:35
【开源免费】KTV职员业绩提成管理系统·商业应用(32)—东方仙盟

【开源免费】KTV职员业绩提成管理系统·商业应用(32)—东方仙盟

职员管理项目管理数据备份与恢复提成记录提成汇总综合报表未来之窗KTV提成计算系统 软件介绍(功能优点总结)一、软件简介未来之窗KTV提成计算系统是一款纯本地离线、单文件轻量化的KTV员工薪资提成管理工具,无需安装、无需联网、无需服务器。…

2026/7/13 23:36:35
C++多线程编程7大核心错误与避坑指南:从数据竞争到性能陷阱

C++多线程编程7大核心错误与避坑指南:从数据竞争到性能陷阱

1. 项目概述:为什么C多线程编程的“坑”如此致命?干了二十多年C,从单核奔腾玩到现在的多核服务器,我最大的感触就是:多线程编程,是C从“高级语言”迈向“系统级语言”的一道分水岭。它让你能真正榨干硬件的…

2026/7/13 23:31:35

月新闻