diff --git a/README.md b/README.md index 292d9d8..125aebf 100644 --- a/README.md +++ b/README.md @@ -10927,7 +10927,7 @@ public JsonData list(@RequestParam(value = "parent_id")Long parentId){ * 类比:一个具备自主决策能力的虚拟助手,能根据目标自主调用工具完成任务 - 1 + 1 @@ -10941,7 +10941,7 @@ public JsonData list(@RequestParam(value = "parent_id")Long parentId){ | 输出形式 | 自然语言 | 结构化动作序列 | | 应用场景 | 内容创作/问答 | 复杂任务自动化 | - 3 + 3 * 常规大模型和Agent案例场景对比 @@ -11117,7 +11117,7 @@ public JsonData list(@RequestParam(value = "parent_id")Long parentId){ * 简单定义, **需要加上文档字符串注释描述,AI才知道工具的用途** - ``` + ```python from langchain_core.tools import tool @tool @@ -11380,9 +11380,9 @@ public JsonData list(@RequestParam(value = "parent_id")Long parentId){ 最终结果: content='3 乘以 12 的结果是 36。' additional_kwargs={'refusal': None} response_metadata={'token_usage': {'completion_tokens': 16, 'prompt_tokens': 272, 'total_tokens': 288, 'completion_tokens_details': None, 'prompt_tokens_details': {'audio_tokens': None, 'cached_tokens': 0}}, 'model_name': 'qwen-plus', 'system_fingerprint': None, 'id': 'chatcmpl-b499cd0b-29d4-9d83-8473-e41d7214223d', 'finish_reason': 'stop', 'logprobs': None} id='run-8046aa25-091a-4df3-a49a-aa36811c8d44-0' usage_metadata={'input_tokens': 272, 'output_tokens': 16, 'total_tokens': 288, 'input_token_details': {'cache_read': 0}, 'output_token_details': {}} ``` - ![Diagram of a tool call invocation](D:/学习/2025/AI智能化云盘学习笔记/笔记/img/tool_invocation-7f277888701ee431a17607f1a035c080-20250328134624442.png) + ![Diagram of a tool call invocation](./img/tool_invocation-7f277888701ee431a17607f1a035c080-20250328134624442.png) - ![Diagram of a tool call result](D:/学习/2025/AI智能化云盘学习笔记/笔记/img/tool_results-71b4b90f33a56563c102d91e7821a993.png) + ![Diagram of a tool call result](./img/tool_results-71b4b90f33a56563c102d91e7821a993.png) * 完整案例实战 @@ -11471,7 +11471,7 @@ public JsonData list(@RequestParam(value = "parent_id")Long parentId){ * 地址(失效忽略即可):https://python.langchain.com/docs/integrations/tools/ - 1 + 1 * 如何使用内置工具包【联网搜索例子】 @@ -11481,7 +11481,7 @@ public JsonData list(@RequestParam(value = "parent_id")Long parentId){ * 搜索工具:选择 SearchApi,注册时100次免费搜索,注册账号获取 APIKEY - image-20250328123503960 + image-20250328123503960 * 编写代码 @@ -11646,7 +11646,7 @@ public JsonData list(@RequestParam(value = "parent_id")Long parentId){ * 交互流程图 - 1 + 1 * 步骤思路 @@ -11891,7 +11891,7 @@ public JsonData list(@RequestParam(value = "parent_id")Long parentId){ * 注册地址:https://smith.langchain.com/ - ![image-20250329170410782](D:/学习/2025/AI智能化云盘学习笔记/笔记/img/image-20250329170410782.png) + ![image-20250329170410782](./img/image-20250329170410782.png) * 配置项目前准备 @@ -11905,7 +11905,7 @@ public JsonData list(@RequestParam(value = "parent_id")Long parentId){ * 配置项目名称(不存在的话会自动新建) - ![image-20250329170551464](D:/学习/2025/AI智能化云盘学习笔记/笔记/img/image-20250329170551464.png) + ![image-20250329170551464](./img/image-20250329170551464.png) #### 大模型调用接入LangSmith分析实战 @@ -11962,11 +11962,11 @@ public JsonData list(@RequestParam(value = "parent_id")Long parentId){ print(resp.content) ``` - ![image-20250329175530690](D:/学习/2025/AI智能化云盘学习笔记/笔记/img/image-20250329175530690.png) + ![image-20250329175530690](./img/image-20250329175530690.png) * 进阶案例测试【选择之前的案例代码-43.2】 - ![image-20250329181733895](D:/学习/2025/AI智能化云盘学习笔记/笔记/img/image-20250329181733895.png) + ![image-20250329181733895](./img/image-20250329181733895.png) ### 模型Agent智能体进阶开发实战 @@ -12379,7 +12379,7 @@ public JsonData list(@RequestParam(value = "parent_id")Long parentId){ * 其他方法:如 `create_json_agent`(处理 JSON )、`create_openai_tools_agent`(适配 OpenAI 工具调用格式) - ![12](D:/学习/2025/AI智能化云盘学习笔记/笔记/img/12.png) + ![12](./img/12.png) * `initialize_agent` 方法介绍 @@ -12825,7 +12825,7 @@ public JsonData list(@RequestParam(value = "parent_id")Long parentId){ * 功能效果演示 - ![image-20250331231807616](D:/学习/2025/AI智能化云盘学习笔记/笔记/img/image-20250331231807616.png) + ![image-20250331231807616](./img/image-20250331231807616.png) * 编码实战 @@ -12955,7 +12955,7 @@ tools = [web_search, retriever_tool] * LangSmith调用链路分析 - ![image-20250401104847864](D:/学习/2025/AI智能化云盘学习笔记/笔记/img/image-20250401104847864.png) + ![image-20250401104847864](./img/image-20250401104847864.png) * 切换不同创建agent方法和提示词进行测试 @@ -13115,7 +13115,7 @@ tools = [web_search, retriever_tool] * 进阶用法:长期记忆 + 向量数据库 * 高级用法:多用户隔离记忆(会话级) -![1](D:/学习/2025/AI智能化云盘学习笔记/笔记/img/1-3479667.png) +![1](./img/1-3479667.png) @@ -13878,7 +13878,7 @@ tools = [web_search, retriever_tool] * `RedisChatMessageHistory` 存储介绍 - ![1](D:/学习/2025/AI智能化云盘学习笔记/笔记/img/1-3677655.png) + ![1](./img/1-3677655.png) * 内置的 Redis 消息历史存储工具,将会话记录以结构化形式保存至 Redis @@ -13893,9 +13893,9 @@ tools = [web_search, retriever_tool] * LangChain 的 `RedisChatMessageHistory` 等组件默认依赖 JSON 格式存储对话历史,ReJSON 提供天然的兼容性 * 数据存储结构 - image-20250404162459285 + image-20250404162459285 - image-20250404162420533 + image-20250404162420533 @@ -14130,7 +14130,7 @@ tools = [web_search, retriever_tool] ``` -### 第四十八章 大模型服务必备FastAPI Web框架 +### 大模型服务必备FastAPI Web框架 #### Python Web框架Fast API技术介绍 @@ -15341,7 +15341,7 @@ tools = [web_search, retriever_tool] * 智能体业务架构图 - image-20250418190055953 + image-20250418190055953 * 项目依赖环境创建 @@ -15442,7 +15442,7 @@ tools = [web_search, retriever_tool] * 打开 首选项 --> 设置 --> 搜索框中 搜索 files.exclude --> 点击 "添加模式" 按钮 * 输入想要隐藏的文件夹, 如python经常生成的缓存文件夹, 输入 `**/__pycache`__ 即可隐藏 `__pycache__` 文件夹. - ![image-20250414104551285](D:/学习/2025/AI智能化云盘学习笔记/笔记/img/image-20250414104551285.png) + ![image-20250414104551285](./img/image-20250414104551285.png) @@ -15837,7 +15837,7 @@ tools = [web_search, retriever_tool] * 采用Redis进行持久化用户的聊天记录 - image-20250421203059141 + image-20250421203059141 * **数据结构**聊天历史:JSON数组,每个元素为一条消息,包含以下字段 @@ -16323,11 +16323,9 @@ tools = [web_search, retriever_tool] * 查看Redis的数据存储:聊天记录和摘要 * 拓展:不用每次都生成摘要,可以配置进阶策略,比如对话轮次阈值(默认5轮)、关键决策点标记、上下文长度超过XXX - image-20250421213741268 - -### 第五十二章 AI智能体心实战之AI在线文档助手 - + image-20250421213741268 +### AI智能体心实战之AI在线文档助手 #### AI在线文档助手需求文档和路由开发实战 @@ -16352,7 +16350,7 @@ tools = [web_search, retriever_tool] * 选择网盘里面的相关资源,则需要登录;选择好文件后调用存储接口获取临时访问地址 * 智能体接受的是在线可以访问的地址,即可实现对应的在线文档解析 - image-20250427120524719 + image-20250427120524719 * 编码实战 @@ -16428,7 +16426,7 @@ tools = [web_search, retriever_tool] * 目前开发PDF和HTML类型,可以根据业务需求自己拓展更多 - image-20250427125855187 + image-20250427125855187 * 拓展知识点 @@ -16536,7 +16534,7 @@ tools = [web_search, retriever_tool] * 使用 - ``` + ```python #前面一开始创建项目的时候已经安装了这个依赖 from tqdm import tqdm import time diff --git a/img/1-21919531.png b/img/1-21919531.png new file mode 100644 index 0000000..7f0c197 Binary files /dev/null and b/img/1-21919531.png differ diff --git a/img/1-3069367.png b/img/1-3069367.png new file mode 100644 index 0000000..ec4b22f Binary files /dev/null and b/img/1-3069367.png differ diff --git a/img/1-3135889.png b/img/1-3135889.png new file mode 100644 index 0000000..db50fde Binary files /dev/null and b/img/1-3135889.png differ diff --git a/img/1-3222765.png b/img/1-3222765.png new file mode 100644 index 0000000..e4506d6 Binary files /dev/null and b/img/1-3222765.png differ diff --git a/img/1-3479667.png b/img/1-3479667.png new file mode 100644 index 0000000..ce64016 Binary files /dev/null and b/img/1-3479667.png differ diff --git a/img/1-3677655.png b/img/1-3677655.png new file mode 100644 index 0000000..529ea1c Binary files /dev/null and b/img/1-3677655.png differ diff --git a/img/12.png b/img/12.png new file mode 100644 index 0000000..a342519 Binary files /dev/null and b/img/12.png differ diff --git a/img/3-3070285.png b/img/3-3070285.png new file mode 100644 index 0000000..7fd2905 Binary files /dev/null and b/img/3-3070285.png differ diff --git a/img/image-20250328123503960.png b/img/image-20250328123503960.png new file mode 100644 index 0000000..a1ef9df Binary files /dev/null and b/img/image-20250328123503960.png differ diff --git a/img/image-20250329170410782.png b/img/image-20250329170410782.png new file mode 100644 index 0000000..631e059 Binary files /dev/null and b/img/image-20250329170410782.png differ diff --git a/img/image-20250329170551464.png b/img/image-20250329170551464.png new file mode 100644 index 0000000..2a4cf4d Binary files /dev/null and b/img/image-20250329170551464.png differ diff --git a/img/image-20250329175530690.png b/img/image-20250329175530690.png new file mode 100644 index 0000000..23ce467 Binary files /dev/null and b/img/image-20250329175530690.png differ diff --git a/img/image-20250329181733895.png b/img/image-20250329181733895.png new file mode 100644 index 0000000..017f595 Binary files /dev/null and b/img/image-20250329181733895.png differ diff --git a/img/image-20250331231807616.png b/img/image-20250331231807616.png new file mode 100644 index 0000000..f71ea2d Binary files /dev/null and b/img/image-20250331231807616.png differ diff --git a/img/image-20250401104847864.png b/img/image-20250401104847864.png new file mode 100644 index 0000000..4069db4 Binary files /dev/null and b/img/image-20250401104847864.png differ diff --git a/img/image-20250404162420533.png b/img/image-20250404162420533.png new file mode 100644 index 0000000..35c0107 Binary files /dev/null and b/img/image-20250404162420533.png differ diff --git a/img/image-20250404162459285.png b/img/image-20250404162459285.png new file mode 100644 index 0000000..a7dabe0 Binary files /dev/null and b/img/image-20250404162459285.png differ diff --git a/img/image-20250414104551285.png b/img/image-20250414104551285.png new file mode 100644 index 0000000..9ee9eb7 Binary files /dev/null and b/img/image-20250414104551285.png differ diff --git a/img/image-20250418190055953.png b/img/image-20250418190055953.png new file mode 100644 index 0000000..62b6ff4 Binary files /dev/null and b/img/image-20250418190055953.png differ diff --git a/img/image-20250421203059141.png b/img/image-20250421203059141.png new file mode 100644 index 0000000..225fb89 Binary files /dev/null and b/img/image-20250421203059141.png differ diff --git a/img/image-20250421213741268.png b/img/image-20250421213741268.png new file mode 100644 index 0000000..a90f6a6 Binary files /dev/null and b/img/image-20250421213741268.png differ diff --git a/img/image-20250427120524719.png b/img/image-20250427120524719.png new file mode 100644 index 0000000..931dc24 Binary files /dev/null and b/img/image-20250427120524719.png differ diff --git a/img/tool_invocation-7f277888701ee431a17607f1a035c080-20250328134624442.png b/img/tool_invocation-7f277888701ee431a17607f1a035c080-20250328134624442.png new file mode 100644 index 0000000..d1e395f Binary files /dev/null and b/img/tool_invocation-7f277888701ee431a17607f1a035c080-20250328134624442.png differ diff --git a/img/tool_results-71b4b90f33a56563c102d91e7821a993.png b/img/tool_results-71b4b90f33a56563c102d91e7821a993.png new file mode 100644 index 0000000..aeedd0c Binary files /dev/null and b/img/tool_results-71b4b90f33a56563c102d91e7821a993.png differ diff --git a/src/test/java/org/ycloud/aipan/ChangeImages.java b/src/test/java/org/ycloud/aipan/ChangeImages.java new file mode 100644 index 0000000..4c8dfdc --- /dev/null +++ b/src/test/java/org/ycloud/aipan/ChangeImages.java @@ -0,0 +1,36 @@ +package org.ycloud.aipan; + +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.nio.file.StandardCopyOption; +import java.util.List; + +public class ChangeImages { + + private static final Path SOURCE_DIR = Paths.get("D:/学习/2025/AI智能化云盘学习笔记/笔记/img"); + private static final Path TARGET_DIR = Paths.get("D:/IdeaProjects/learn/ycloud-aipan/img"); + + public static void main(String[] args) { + List images = List.of("1-3069367.png", "3-3070285.png"); + try { + for (String image : images) { + Path sourceFile = SOURCE_DIR.resolve(image); + Path targetFile = TARGET_DIR.resolve(image); + if (!Files.exists(sourceFile)) { + System.err.println("源文件不存在: " + sourceFile); + continue; + } + if (Files.exists(targetFile)) { + System.out.println("目标文件已存在,跳过: " + targetFile); + continue; + } + Files.move(sourceFile, targetFile, StandardCopyOption.REPLACE_EXISTING); + System.out.println("文件移动成功: " + sourceFile + " -> " + targetFile); + } + } catch (IOException e) { + System.err.println("文件操作发生异常: " + e.getMessage()); + } + } +}