当前位置: 首页 > news >正文

如何通过日志在本地调试LangChain编写的程序?

LangSmith可以记录LangChain程序对LLM的调用,但它需要登陆LangSmith网站才能看到。有什么办法在本地就能看到详细的信息,以方便调试LangChain编写的程序吗?

使用LangChain提供的set_debug(True)

在Python代码中只需要导入set_debug这个方法,再调用即可。参考代码如下

from langchain_ollama import ChatOllama  
from langchain.globals import set_debug  set_debug(True)  
llm = ChatOllama(model="llama3:8b")  
response = llm.invoke("What are you?")

这段代码访问了本地通过Ollama部署的llama3大模型,提了一个简单的问题就结束了。执行后我们可以在日志中看到如下的日志

[llm/start] [llm:ChatOllama] Entering LLM run with input:
{"prompts": ["Human: What are you?"]
}
[llm/end] [llm:ChatOllama] [8.92s] Exiting LLM run with output:
{"generations": [[{"text": "I am LLaMA, an AI assistant developed by Meta AI that can understand and respond to human input in a conversational manner. ... What would you like to talk about?",..."type": "ChatGeneration","message": {"lc": 1,"type": "constructor","id": ["langchain","schema","messages","AIMessage"],"kwargs": {..."usage_metadata": {"input_tokens": 14,"output_tokens": 116,"total_tokens": 130},"tool_calls": [],"invalid_tool_calls": []}...
}

这里我们能看到LangChain代码内部运行产生的输入输出数据。在输出数据中,能看到大模型返回的信息、消耗的token等信息。如果使用了LangSmith的话,你会发现这些信息和LangSmith里记录的信息差不多(不过LangSmith里还额外记录了很多元数据)。

有的时候你可能想查看更多的信息,比如程序和后端大模型API服务的http请求响应信息,需要怎么做呢?

启用全局的Debug日志

在代码里启用全局的Debug日志,代码如下

from langchain_ollama import ChatOllama  
import logging  
logging.basicConfig(level=logging.DEBUG)  llm = ChatOllama(model="llama3:8b")  
response = llm.invoke("What are you?")

这时运行程序会看到下面的日志

DEBUG:httpcore.connection:connect_tcp.started host='127.0.0.1' port=11434 local_address=None timeout=None socket_options=None
DEBUG:httpcore.connection:connect_tcp.complete return_value=<httpcore._backends.sync.SyncStream object at 0x11876b520>
DEBUG:httpcore.http11:send_request_headers.started request=<Request [b'POST']>
DEBUG:httpcore.http11:send_request_headers.complete
DEBUG:httpcore.http11:send_request_body.started request=<Request [b'POST']>
DEBUG:httpcore.http11:send_request_body.complete
DEBUG:httpcore.http11:receive_response_headers.started request=<Request [b'POST']>
DEBUG:httpcore.http11:receive_response_headers.complete return_value=(b'HTTP/1.1', 200, b'OK', [(b'Content-Type', b'application/x-ndjson'), (b'Date', b'Thu, 01 May 2025 05:59:24 GMT'), (b'Transfer-Encoding', b'chunked')])
INFO:httpx:HTTP Request: POST http://127.0.0.1:11434/api/chat "HTTP/1.1 200 OK"
DEBUG:httpcore.http11:receive_response_body.started request=<Request [b'POST']>
DEBUG:httpcore.http11:receive_response_body.complete
DEBUG:httpcore.http11:response_closed.started
DEBUG:httpcore.http11:response_closed.complete

现在能看到http请求和响应的信息了,但也只是一点点而已,只有后端服务的地址、端口、header、HTTP状态码。还能有更多的信息吗?机缘巧合下,我发现对程序稍加修改就能看到更多的信息。

from langchain_openai import ChatOpenAI  
import logging  
logging.basicConfig(level=logging.DEBUG)  llm = ChatOpenAI(  model="llama3:8b",  base_url="http://localhost:11434/v1",  api_key="123456"  
)  
response = llm.invoke("What are you?")

这里把对ChatOllama的使用改为ChatOpenAI,日志中就会多出一些openai的日志

DEBUG:openai._base_client:Request options: {'method': 'post', 'url': '/chat/completions', 'files': None, 'idempotency_key': 'stainless-python-retry-fe5f895d-c0da-4216-a273-b16f967433d3', 'json_data': {'messages': [{'content': 'What are you?', 'role': 'user'}], 'model': 'llama3:8b', 'stream': False}}
DEBUG:openai._base_client:Sending HTTP Request: POST http://localhost:11434/v1/chat/completions

这里我们能看到和后端大模型服务交互的地址和HTTP request body(也就是上面json_data的值),但还是缺少HTTP response的详细信息。好在ChatOpenAI这个构造函数允许我们传递http_client,于是我们就可以对http客户端做一些修改

from langchain_openai import ChatOpenAI  
import logging  
logging.basicConfig(level=logging.DEBUG)  import httpx  
def log_request(request):  print(f"Request: {request.method} {request.url}")  print("Headers:", request.headers)  print("Body:", request.content.decode())  def log_response(response):  response.read()  print(f"Response: {response.status_code}")  print("Headers:", response.headers)  print("Body:", response.text)  client = httpx.Client(  event_hooks={  "request": [log_request],  "response": [log_response],  }  
)  llm = ChatOpenAI(  model="llama3:8b",  base_url="http://localhost:11434/v1",  api_key="123456",  http_client=client  
)  
response = llm.invoke("What are you?")

给httpx.Client设置请求和响应的hook,让它在发送请求和收到响应后打印请求和相应信息。现在再运行代码,会看到更详细的日志

Request: POST http://localhost:11434/v1/chat/completions
Headers: Headers({'host': 'localhost:11434', 'accept-encoding': 'gzip, deflate, zstd', 'connection': 'keep-alive', 'accept': 'application/json', 'content-type': 'application/json', 'user-agent': 'OpenAI/Python 1.76.0', 'x-stainless-lang': 'python', 'x-stainless-package-version': '1.76.0', 'x-stainless-os': 'MacOS', 'x-stainless-arch': 'arm64', 'x-stainless-runtime': 'CPython', 'x-stainless-runtime-version': '3.10.16', 'authorization': '[secure]', 'x-stainless-async': 'false', 'x-stainless-retry-count': '0', 'content-length': '91'})
Body: {"messages":[{"content":"What are you?","role":"user"}],"model":"llama3:8b","stream":false}...Response: 200
Headers: Headers({'content-type': 'application/json', 'date': 'Thu, 01 May 2025 06:29:08 GMT', 'content-length': '1262'})
Body: {"id":"chatcmpl-96","object":"chat.completion","created":1746080948,"model":"llama3:8b","system_fingerprint":"fp_ollama","choices":[{"index":0,"message":{"role":"assistant","content":"I am LLaMA, an AI assistant developed by Meta AI ... when needed."},"finish_reason":"stop"}],"usage":{"prompt_tokens":14,"completion_tokens":184,"total_tokens":198}}

这下程序和后端大模型API服务的http请求响应信息都完整的打印出来了。这里引申出一个问题

必须使用ChatOpenAI才能得到http请求和响应信息吗?

当前的 ChatOpenAI(版本0.3.14)支持我们传入http_client参数,所以我们才有机会通过hook来打印http信息。我查看了下面几个chat model,发现它们都不支持http_client的传入,所以这个方案必须要使用ChatOpenAI。

  • ChatTongyi
  • ChatBaichuan
  • ChatCoze
  • ChatOllama

但这同时也带来一个使用的限制:后端大模型服务必须要兼容OpenAI的API规范(否则无法使用ChatOpenAI和他们通信)。

好了,文章到此结束,希望能给你带来一些帮助。

相关文章:

如何通过日志在本地调试LangChain编写的程序?

LangSmith可以记录LangChain程序对LLM的调用&#xff0c;但它需要登陆LangSmith网站才能看到。有什么办法在本地就能看到详细的信息&#xff0c;以方便调试LangChain编写的程序吗&#xff1f; 使用LangChain提供的set_debug(True) 在Python代码中只需要导入set_debug这个方法…...

UE实用地编插件Physical Layout Tool

免费插件 https://www.fab.com/zh-cn/listings/a7fb6fcf-596f-48e9-83cc-f584aea316b1 可以通过物理模拟批量放置物体 不用再一个个摆放了 装饰环境从未如此简单&#xff0c;您不必再考虑对齐物体。 物理地放置物体&#xff0c;移动它们&#xff0c;在移动或在地图上放置物体…...

传感器的精度,灵敏度等概念介绍

文章目录 &#x1f3d4;️ 海拔高度传感器的四个核心指标1. &#x1f3af; **精度&#xff08;Accuracy&#xff09;——“测得的高度准不准”**2. ⚡ **灵敏度&#xff08;Sensitivity&#xff09;——“高度微小变化有没有反应”**3. &#x1f50d; **分辨率&#xff08;Reso…...

前端八股 CSS 1

盒子模型 进行布局时将所有元素表示为一个个盒子box padding margin border content content&#xff1a;盒子内容 待显示的文本和图像 padding&#xff1a;内边距&#xff0c;内容和border之间的空间&#xff0c;不能为负数&#xff0c;受bkc影响 border:边框&#xff0c…...

Transformer架构的解耦重组现象

技术演进图谱与技术成熟度曲线 &#xff08;一&#xff09;架构创新范式迭代 1.1 Transformer架构的解耦重组现象 以2025年Opt模型为例&#xff0c;其通过引入强化学习微调模块实现了传统单层堆叠架构向"感知-推理分离"模式的转型。实验数据显示&#xff0c;该架构…...

【Android】四大组件

目录 1. Activity 2. Service 3. BroadcastReceiver 4. ContentProvider 四大组件各自承担着不同的职责&#xff0c;彼此之间协同工作&#xff0c;共同为用户提供一个流畅的APP体验。 1. Activity 负责展示用户界面&#xff0c;就像App的一个个“页面”&#xff0c;用户通…...

贪心算法精解(Java实现):从理论到实战

一、贪心算法概述 贪心算法&#xff08;Greedy Algorithm&#xff09;是一种在每一步选择中都采取当前状态下最优决策的算法策略。它通过局部最优选择来达到全局最优解&#xff0c;具有高效、简洁的特点。 核心特点&#xff1a; 局部最优选择&#xff1a;每一步都做出当前看…...

基于BERT类的MRPC语义相似度检测(从0到-1系列)

基于BERT类的MRPC语义相似度检测&#xff08;从0到-1系列&#xff09; 介绍 BERT&#xff08;Bidirectional Encoder Representations from Transformers&#xff09;是由Google开发的一种预训练模型&#xff0c;它是一种基于Transformer机制的深度双向模型&#xff0c;可以对…...

mysql-窗口函数一

目录 一、感受一下分组与窗口函数的区别 二、滑动窗口&#xff08;子窗口&#xff09;大小的确认 2.1 分组函数下order by使用 2.2 窗口子句 2.3 执行流程 三、函数使用 窗口函数需要mysql的版本大于等于8才行&#xff0c;可以先检查一下自己的mysql版本是多少 select ve…...

HashMap,高效 哈希

java HashMap 有独特的设计。 哈希表数组的每个位置是一个哈希桶&#xff0c;里面由链表或红黑树实现。&#xff08;> 8 或 < 6 的变化时&#xff0c;避免频繁切换&#xff09; 容量&#xff08;capacity&#xff09;&#xff1a; 哈希表中桶&#xff08;bucket&#xf…...

PyTorch入门------训练图像分类器

前言 1. 操作步骤 2. 数据集 一、公共部分 1.加载并归一化 CIFAR10 2.定义卷积神经网络 二、训练、保存模型参数部分 train_and_save.py 3.定义损失函数和优化器 4.训练网络(使用 CPU 或者 GPU) 5.保存训练好的模型参数 三、加载模型参数、模型推理部分 load_and_infer.py 6…...

DeepSeek V3 架构创新:大规模MoE与辅助损失移除

DeepSeek 团队推出的全新 DeepSeek V3 模型版本,相比之前的 V2 版本,V3 的参数量从两千多亿一跃攀升到 6710 亿,近乎实现了参数规模的三倍增长。如此宏大的模型规模并不只是简单地堆砌参数,而是建立在稀疏混合专家(Mixture-of-Experts,MoE)结构之上。得益于 MoE 的稀疏激…...

MCP 多工具协作链路设计:打造真正的智能工作流

目录 [TOC] &#x1f680; MCP 多工具协作链路设计&#xff1a;打造真正的智能工作流 &#x1f31f; 多工具协作链核心思想 &#x1f6e0;️ 设计示例&#xff1a;智能文档分析系统 &#x1f4d1; 1. MCP Server 定义多工具 list_txt_files.py read_file_content.py su…...

某修改版软件,已突破限制!

聊一聊 现在很多输入法都带有广告。 用着用着&#xff0c;不是提示升级就是弹出资讯。 特别是忙的时候&#xff0c;很影响心情。 今天给大家分享一款干净的输入法软件。 希望能你喜欢。 软件介绍 Q拼音输入法 工具我们下载后&#xff0c;进行安装。 双击打开&#xff0c…...

透视Linux内核:深度剖析Socket机制的本质

在Linux操作系统构建的网络世界里&#xff0c;Socket 宛如纵横交错的交通枢纽&#xff0c;承担着不同应用程序间数据往来的重任。无论是日常浏览网页时&#xff0c;浏览器与 Web 服务器间信息的快速交互&#xff1b;还是畅玩网络游戏过程中&#xff0c;玩家操作指令与游戏服务器…...

PostgreSQL数据表操作SQL

数据表操作 创建表 CREATE TABLE t_test(id SERIAL PRIMARY KEY,name varchar(30),birthday date);修改表名 ALTER TABLE t_test RENAME TO t_test1;添加列 ALTER TABLE t_test1 ADD COLUMN score numeric(5,2);删除列 ALTER TABLE t_test1 DROP COLUMN score;修改数据类型 AL…...

OpenAI最新发布的GPT-4.1系列模型,性能体验如何?

简单来说,这次GPT-4.1的核心思路就是:更实用、更懂开发者、更便宜!OpenAI这次没搞太多花里胡哨的概念,而是实实在在地提升了大家最关心的几个点:写代码、听指令、处理超长文本,而且知识库也更新到了2024年6月。 写代码。要说这次GPT-4.1最亮眼的地方,可能就是写代码这块…...

2025五一数学建模C题完整分析论文(共36页)(含模型、可运行代码、数据)

2025年五一数学建模C题完整分析论文 摘要 一、问题分析 二、问题重述 三、模型假设 四、符号定义 五、 模型建立与求解 5.1问题1 5.1.1问题1思路分析 5.1.2问题1模型建立 5.1.3问题1代码 5.1.4问题1求解结果 5.2问题2 5.2.1问题2思路分析 5.2.2问题…...

Vue2基础速成

一、准备工作 首先下载vue2的JavaScript库&#xff0c;并且命名为vue.min.js 下载链接&#xff1a;https://cdn.jsdelivr.net/npm/vue2&#xff08;若链接失效可去vue官网寻找&#xff09; CTRLS即可下载保存 文件目录结构 二、使用操作原生DOM与使用VUE操作DOM的便捷性比较…...

Java大厂硬核面试:Flink流处理容错、Pomelo JVM调优、MyBatis二级缓存穿透防护与Kubernetes服务网格实战解析

第二幕&#xff1a;系统架构设计 面试官&#xff1a;设计一个处理10万QPS的秒杀系统需要的技术方案和技术选型 xbhog&#xff1a;采用基础架构&#xff1a; 存储层&#xff1a;Redis限流分布式锁服务层&#xff1a;Sentinel流量控制消息层&#xff1a;RocketMQ事务消息保证最…...

Python实现简易博客系统

下面我将介绍如何使用Python实现一个简易的博客系统,包含前后端完整功能。这个系统将使用Flask作为Web框架,SQLite作为数据库,并包含用户认证、文章发布、评论等基本功能。 1. 系统架构设计 技术栈选择 ​​后端​​:Flask (Python Web框架)​​数据库​​:SQLite (轻量…...

【T型三电平仿真】SPWM调制

自然采样法和规则采样法的特点和计算 https://blog.csdn.net/u010632165/article/details/110889621 单极性和双极性的单双体现在什么地方 单极性和双极性的单双是指载波三角波的极性 为什么simulink进行电路仿真时&#xff0c;都需要放置一个powergui模块 任何使用SimPow…...

Astral Ascent 星界战士(星座上升) [DLC 解锁] [Steam] [Windows SteamOS macOS]

Astral Ascent 星界战士&#xff08;星座上升&#xff09; [DLC 解锁] [Steam] [Windows & SteamOS & macOS] 需要有游戏正版基础本体&#xff0c;安装路径不能带有中文&#xff0c;或其它非常规拉丁字符&#xff1b; DLC 版本 至最新全部 DLC 后续可能无法及时更新文章…...

Ubuntu20.04如何优雅的安装ROS 1(胎教级教程)

1、USTC的源&#xff1a; sudo sh -c . /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ lsb_release -cs main" > /etc/apt/sources.list.d/ros-latest.list2、设置的ROS源添加密钥&#xff1a; sudo apt-key adv --keyserver …...

terraform生成随机密码

在 Terraform 中生成安全随机密码可以通过 random_password 资源实现&#xff0c;以下是完整实现方案及安全实践&#xff1a; 基础实现 (生成随机密码) terraform {required_providers {random {source "hashicorp/random"version "~> 3.5.1" # 使…...

一个linux系统电脑,一个windows电脑,怎么实现某一个文件夹共享

下载Samba linux主机名字不能超过15个字符 sudo dnf install samba samba-client -y 创建共享文件夹 sudo mkdir /shared 配置文件 vim /etc/samba/smb.conf [shared] path /shared available yes valid users linux电脑用户 read only no browsable yes p…...

等保系列(一):网络安全等级保护介绍

一、基本概念 网络安全等级保护&#xff08;以下简称&#xff1a;等保&#xff09;是根据《中华人民共和国网络安全法》及配套规定&#xff08;如《信息安全技术 网络安全等级保护基本要求》等&#xff09;建立的系统性安全防护机制&#xff0c;要求网络运营者根据信息系统的重…...

【专题五】位运算(2)

&#x1f4dd;前言说明&#xff1a; 本专栏主要记录本人的基础算法学习以及LeetCode刷题记录&#xff0c;按专题划分每题主要记录&#xff1a;&#xff08;1&#xff09;本人解法 本人屎山代码&#xff1b;&#xff08;2&#xff09;优质解法 优质代码&#xff1b;&#xff…...

【2025五一数学建模竞赛A题】 支路车流量推测问题|建模过程+完整代码论文全解全析

你是否在寻找数学建模比赛的突破点&#xff1f;数学建模进阶思路&#xff01; 作为经验丰富的美赛O奖、国赛国一的数学建模团队&#xff0c;我们将为你带来本次数学建模竞赛的全面解析。这个解决方案包不仅包括完整的代码实现&#xff0c;还有详尽的建模过程和解析&#xff0c…...

案例:自动化获取Web页面小说(没钱修什么仙)——selenium

目录 前言一、目标即结果1. 目标&#xff1a;2. 提前了解网页信息3. 结果 二、逐步分析1 . selenium启动2. 获取所有章节3.打开对应章节链接&#xff0c;获取小说文本4. 内容写入本地文件 三、完整代码四、声名 前言 提示&#xff1a;通过案例掌握selenium语法 涉及技术&#…...

硬件工程师面试常见问题(11)

第五十一问&#xff1a;器件手册的翻译题目 要学英语啊&#xff0c;孩子。 第五十二问&#xff1a;二极管三极管常识题 1.二极管的导通电压一般是 0.7V 2.MOS管根据掺杂类型可以分为 NMOS和PMOS 3.晶体三极管在工作时,发射结和集电结均处于正向偏置,该晶体管工作在一饱和态。…...

TTL、LRU、LFU英文全称及释义

以下是 TTL、LRU 和 LFU 的英文全称及其简要解释&#xff1a; 1. TTL 全称&#xff1a;Time To Live&#xff08;存活时间&#xff09;含义&#xff1a; 表示数据在缓存或存储中的有效存活时间&#xff0c;过期后自动删除。 Redis 示例&#xff1a;SET key value EX 60&#x…...

本地部署 n8n 中文版

本地部署 n8n 中文版 0. n8n的核心价值1. 本地部署 n8n 中文版2. 访问 n8n 在技术团队寻求高效自动化解决方案的今天&#xff0c;n8n 作为一款安全的工作流自动化平台脱颖而出&#xff01;它将代码的灵活性与低代码的便捷性深度融合&#xff0c;为开发者提供了独特的工具选择。…...

蓝桥杯比赛

蓝桥杯全国软件和信息技术专业人才大赛是由工业和信息化部人才交流中心主办&#xff0c;国信蓝桥教育科技&#xff08;北京&#xff09;股份有限公司承办的计算机类学科竞赛。以下是其相关信息&#xff1a; 参赛对象 具有正式全日制学籍且符合相关科目报名要求的研究生、本科生…...

【Linux】Makefile

Makefile常用用法介绍。 部分图片和经验来源于网络&#xff0c;还有正点原子的Linux驱动开发教程&#xff0c;若有侵权麻烦联系我删除&#xff0c;主要是做笔记的时候忘记写来源了&#xff0c;做完笔记很久才写博客。 专栏目录&#xff1a;记录自己的嵌入式学习之路-CSDN博客 1…...

【工具】Windows批量文件复制教程:用BAT脚本自动化文件管理

一、引言 在日常开发与部署过程中&#xff0c;文件的自动化复制是一个非常常见的需求。无论是在构建过程、自动部署&#xff0c;还是备份任务中&#xff0c;开发者经常需要将某个目录中的 DLL、配置文件、资源文件批量复制到目标位置。相比使用图形界面的复制粘贴操作&#xf…...

字节一面:后端开发

前言 这是我字节一面的回忆录&#xff0c;可能有些不全。 由于博主是Java面试Go岗&#xff0c;操作系统和计网问的还是比较多。 个人感觉字节很喜欢追问&#xff0c;博主被追问拷打的找不到北了&#xff0c;总结还是学的太浅了。 面试官给我的建议&#xff1a;再更深挖一些…...

西式烹饪实训室建设路径

在餐饮行业持续变革与教育信息化快速发展的当下&#xff0c;西式烹饪实训室的智能化建设成为提升教学质量、培养适应新时代需求烹饪人才的关键举措。通过引入先进技术&#xff0c;创新教学与管理模式&#xff0c;为学生打造更高效、更具沉浸感的学习环境。凯禾瑞华——实训室建…...

[更新完毕]2025五一杯A题五一杯数学建模思路代码文章教学:支路车流量推测问题

完整内容请看文章最下面的推广群 支路车流量推测问题 摘要 本文针对支路车流量推测问题展开研究&#xff0c;通过建立数学模型解决不同场景下的车流量分析需求。 针对问题一&#xff08;Y型道路场景&#xff09;&#xff0c;研究两支路汇入主路的车流量推测。通过建立线性增长…...

2025年五一杯C题详细思路分析

C题 社交媒体平台用户分析问题 问题背景 近年来&#xff0c;社交媒体平台打造了多元化的线上交流空间和文化圈&#xff0c;深刻影响着人们社交互动与信息获取。博主基于专业知识或兴趣爱好等创作出高质量内容&#xff0c;吸引并获得用户的关注。用户可以随时通过观看、点赞、…...

攻防世界 dice_game

dice_game ​​​​​​dice_game (1) motalymotaly-VMware-Virtual-Platform:~/桌面$ file game game: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]254…...

如何进行 JVM 性能调优?

进行 JVM 性能调优是一个系统性的过程&#xff0c;旨在提高 Java 应用程序的响应速度、吞吐量、降低资源消耗&#xff08;如 CPU 和内存&#xff09;以及提高稳定性。 以下是一个通用的 JVM 性能调优步骤和常用方法&#xff1a; 第一步&#xff1a;明确目标与建立基线 (Defin…...

艺华直播 5.0 |专注于提供港澳台及央视频道的电视直播应用,加载快,播放流畅

艺华直播是一款专注于提供港澳台及央视频道的电视直播应用。它以加载速度快、播放流畅不卡顿著称&#xff0c;是目前少数能够稳定观看港澳台频道的应用之一。此次分享的版本为测试版&#xff0c;支持4K秒播&#xff0c;带来极致的观看体验。尽管该应用已开始收费&#xff0c;但…...

【软件设计师:复习】上午题核心知识点总结(三)

一、编译原理(基础题) 1.编译过程概述(必考) 编译过程分为六个阶段,各阶段核心任务与典型输出如下: 阶段核心任务输入输出关键方法/工具词法分析将字符流转换为标记(Token)流源代码字符串Token序列(如<ID, "x">)正则表达式、有限自动机(DFA/NFA)…...

SAE极速部署弹性微服务商城——实验记录

SAE极速部署弹性微服务商城 本实验带您体验在SAE上快速部署一个弹性的在线商城微服务应用&#xff0c;使得终端用户可以通过公网访问该商城&#xff0c;并进行压力测试以验证其性能与稳定性。 文章目录 SAE极速部署弹性微服务商城使用SAE部署应用有哪些优势&#xff1f; 对商城…...

内存 “舞台” 上,进程如何 “翩翩起舞”?(转)

在数字世界里&#xff0c;计算机的每一次高效运转都离不开内存与进程的默契配合。内存&#xff0c;恰似一座宏大且有序的舞台&#xff0c;为进程提供了施展拳脚的空间。而进程&#xff0c;则如同舞台上的舞者&#xff0c;它们在内存的舞台上&#xff0c;遵循着一套复杂而精妙的…...

产品手册小程序开发制作方案

公司产品手册小程序系统主要是为了解决传统纸质或PDF格式手册更新成本高、周期长&#xff0c;难以及时反映最新产品信息。线下分发效率低&#xff0c;线上分享体验差&#xff0c;不利于品牌推广。传统手册单向传递信息&#xff0c;无法与用户进行互动&#xff0c;企业难以了解用…...

【dify—8】Agent实战——占星师

目录 一、创建Agent应用 二、创建提示词 三、创建变量 四、添加工具 五、发布更新 六、运行 第一部分 安装difydocker教程&#xff1a;【difydocker安装教程】-CSDN博客 第二部分 dock重装教程&#xff1a;【dify—2】docker重装-CSDN博客 第三部分 dify拉取镜像&#xff…...

Redis的键过期删除策略与内存淘汰机制详解

Redis 的键过期删除策略与内存淘汰机制详解 一、键过期删除策略 Redis 通过 定期删除&#xff08;Active Expire&#xff09; 和 惰性删除&#xff08;Lazy Expire&#xff09; 两种方式结合&#xff0c;管理键的过期清理。 1. 惰性删除&#xff08;Lazy Expire&#xff09; …...

数据结构——树(中篇)

今日名言&#xff1a; 人生碌碌&#xff0c;竞短论长&#xff0c;却不道枯荣有数&#xff0c;得失难量 上次我们讲了树的相关知识&#xff0c;接下来就进一步了解二叉树吧。本文为个人学习笔记&#xff0c;如有侵权&#xff0c;请 联系删除&#xff0c;如有错误&#xff0c;欢…...