自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(117)
  • 收藏
  • 关注

原创 fastapi 中的db.add db.comit db.flush db.refresh都是什么意思 有顺序吗

方法核心作用是否写入数据库是否提交事务db.add标记对象为待提交否否db.flush执行 SQL 但不提交事务,同步临时结果是(临时)否db.commit提交事务,永久保存所有更改是(永久)是db.refresh从数据库同步最新数据到内存对象否(只读)否add是 “告诉会话要保存什么”,flush是 “先让数据库临时执行一下”,commit是 “确认保存,生效”,refresh是 “更新内存对象为数据库最新状态”。顺序上,add通常在最前,commit是最终确认,flush和。

2025-11-13 15:48:39 292

原创 多头注意力机制 python代码实现

上一章我们讲了多头注意力机制的原理,并且使用了“我请李雷帮我订了去北京的机票“这句话进行了模拟推演。本章配上具体的python代码实现,加深理解。以上代码会输出:每个头(head)的注意力权重矩阵(数值 + 可视化 heatmap)每个 token 的前 3 个最关注对象每个 token 的最终向量输出(融合了上下文语义)

2025-10-22 16:07:01 213

原创 transformer多头注意力机制代码详解

今天咱们来用的方式,把 Transformer 的“多头注意力机制(Multi-Head Attention)”讲明白。多头注意力机制就是:“让模型在同一句话里。它像一个团队的“八个小脑袋”,每个脑袋专注不同的语义关系,然后再把结果合在一起,得到更全面的理解。

2025-10-22 15:59:04 1080 1

原创 git常见冲突场景及解决办法

bash# 1. 确认本地已提交所有修改(已完成)git status# 2. 获取远程最新代码# 3. 合并远程代码到本地# 4. 若有冲突,解决后提交# git add <冲突文件># 5. 推送本地代码到远程(可选)通过以上步骤,既能同步远程最新代码,又能保留本地已提交的新需求,最终形成一个包含双方修改的完整分支。即使本地修改未addcommit,只要与远程修改了同一文件的同一部分,最终恢复本地修改时就会产生冲突。通过git stash。

2025-09-13 17:57:24 1073

原创 MCP模型上下文协议以及交互流程

协议本质是 JSON-RPC 2.0 风格(双向流),模型和外部“上下文服务器”之间通过 WebSocket 或 HTTP(SSE/gRPC)传递消息。AI->>MCPClient: 生成工具调用JSON {name:"get_weather",args:{"city":"北京"}}:让大语言模型(LLM)能在“上下文”之外,按统一格式访问外部数据、调用插件、持久化状态。,模型并不需要知道背后是数据库、API 还是文件,只管按 MCP 协议去“列/读/调”。

2025-09-11 16:46:22 1349 2

原创 langchain 消息和消息模版

简单固定场景:如果消息内容不变(比如固定系统指令、单轮固定问题),用或手动写字典都可以,前者是 LangChain 封装好的类,代码更规范;动态变化场景:如果消息内容需要根据变量替换(比如多轮对话、动态参数),必须用,效率更高、更易维护。本质上,Message类是「静态结果」,类是「动态生成工具」—— 前者是后者最终生成的产物之一。方式角色本质等效的字典格式核心特点系统角色硬编码内容,无动态变量人类角色硬编码内容,无动态变量手动写字典任意角色硬编码内容,无动态变量。

2025-09-05 11:06:41 975

原创 Agent开发基础---提示词编写

任务描述必须像函数定义一样清晰,避免使用模糊的词汇。•​​反面教材​​: “处理一下这份数据。•​​正面教材​​:“请对用户提供的JSON数组进行清洗和转换。具体任务:1. 过滤掉‘age’字段小于0或大于120的记录。2. 将‘name’字段的首字母大写。3. 计算‘score’字段的平均值。

2025-09-03 17:38:42 1086

原创 网络技术名词 CDN NAT GA DNS

要理解和。

2025-09-02 15:09:53 926

原创 网络传输的实际收发情况及tcp、udp的区别

连接建立阶段:通过 3 次 “控制报文” 的层级传递(3 次向下→向上),打通 “客户端↔服务器” 的 TCP 通道,此时无应用数据。数据传输阶段:应用层数据通过 Socket 交给 TCP,每次数据交互(客户端发请求 / 服务器回响应)都要完整走一遍层级(向下→向上),这是 “新的传递流程”,和连接阶段独立。

2025-09-02 14:56:41 681 1

原创 网络数据包是怎么在客户端和服务端之间进行传输的?

网络层功能数据单元关键信息比喻​​应用层​​生成用户数据消息/数据​​日记内容​​​​传输层​​端到端连接管理段 (Segment)​​端口号​​、序列号​​快递面单​​(房间号)​​网络层​​网络间寻址路由包 (Packet)​​IP地址​​​​地址标签​​(街道地址)​​网络接口层​​物理网络传输帧 (Frame)MAC地址​​实际运输​​(卡车运送)结构上:应用层是 “功能顶层”(负责数据内容),物理层是 “功能底层”(负责物理传输);

2025-09-02 14:29:51 756

原创 fastapi项目细节和启动顺序

FastAPI 项目的启动并非单一入口执行,而是遵循“Python 解释器执行顺序”+“FastAPI 框架初始化逻辑”执行顺序main.py全局变量(模块加载时)→lifespan(服务启动时);核心差异:全局变量是「静态配置容器」,lifespan 是「动态资源管家」;选择原则:静态、轻量、同步的用全局变量;异步、需清理、依赖服务的用 lifespan。

2025-08-28 16:38:01 994

原创 图数据库(neo4j)基础: 分类/标签 节点 关系 属性

我们可以用一张图和一个著名的​​三元组 (Triple)​​ 模型来总结:​(头实体,关系,尾实体)或(实体,属性,属性值)。​​•​​事实型知识​​(实体间关系):(刘德华, 演唱了, 《冰雨》)•​​描述型知识​​(实体自身属性):(刘德华, 国籍, 中国)graph LRA[刘德华] -- 演唱了 --> B[《冰雨》]A -- 国籍 --> C(中国)A -- 标签是 --> D[歌手]A -- 标签是 --> E[演员]B -- 标签是 --> F[音乐作品]

2025-08-22 16:38:05 915

原创 添加到图数据库-_search_graph_db函数实现

函数的核心作用是:在图数据库中,根据输入的节点列表(文本),搜索与之相似的节点,并获取这些相似节点的所有入站关系(其他节点指向它)和出站关系(它指向其他节点),同时支持按条件过滤(如用户 ID、代理 ID 等)。假设场景:一个电商知识图谱,图中节点标签为 “Product”(),节点有(名称)、(向量)、(所属用户)等属性,关系包括 “属于”“在售卖”“购买了” 等。构建过滤条件: 因为有,所以会变成,用于限制只匹配的节点。节点向量转换: 调用,将 “苹果手机” 转换为向量(例如)。执行 Cypher

2025-08-22 16:34:46 301

原创 web请求和响应

请求头就是告诉服务器“我是谁、我想要什么格式的数据、我会发什么格式的数据、我有哪些权限”。:响应头告诉客户端“我给你的是啥格式、能不能缓存、是否允许跨域、cookie 怎么设置”。当客户端(比如浏览器、App)向服务器发起请求时,会有。请求一般没有请求体(数据放在 URL 参数里)。我帮你分成**请求(Request):请求体是“我要发给你的具体内容”。体(Body)**各自规定的东西。:响应体就是“我给你的具体内容”。例:浏览器型号、系统版本等。文件(图片、视频、压缩包…= 规则 & 元信息。

2025-08-14 16:56:21 468

原创 小白必看 b kb mb gb 字节是什么关系

字节(B):计算机存储数据的基本单位,通常用来表示一个英文字符(如字母、数字)的存储空间。更小的单位:在字节之下,还有比特(bit,简称 b),1 字节 = 8 比特(1B = 8b),但比特更多用于表示数据传输速率(如网络速度)。

2025-08-13 11:17:14 3177

原创 python设计模式-工厂模式

工厂模式的核心思想:封装对象创建过程、解耦对象使用与创建。以上代码通过创建独立的工厂类,并通过工厂类来管理不同类型对象的创建。

2025-08-01 11:32:03 258

原创 python装饰器 @property

这种设计的核心是在保持简单接口(类似直接访问属性)的同时,增强代码的可控性和灵活性。既避免了直接暴露内部变量导致的数据混乱,又比传统的方法更符合 Python 的简洁风格.必须以@xxx@property装饰的方法)为前提,二者是 “读写配对” 的关系。xxx是方法名称,两个方法(读和写)必须同名,才能被关联为同一个属性的操作逻辑。这种设计既保留了属性访问的简洁性,又实现了对读写过程的控制。

2025-07-31 16:51:28 813

原创 计算机网络-OSI 七层模型

你发微信消息→应用层打包内容;传输层加上端口(确保到对方微信);网络层加上 IP(确保到对方设备);数据链路层加上 MAC(确保在相邻设备间传递);物理层变成电信号 / 光信号传出去;对方设备收到后,从物理层到应用层反向拆解,最后朋友的微信显示 “吃了吗?每层只关心自己的任务,不用管其他层。比如微信只需要处理聊天内容(应用层),不用管信号怎么变成电信号(物理层),就像你寄快递不用管货车怎么开,效率更高。

2025-07-30 18:31:25 825

原创 ip 端口 进程 数据包 网络通信 小白必看!

PID:操作系统分配给进程的唯一编号,动态生成,范围取决于系统。端口:进程用于网络通信的逻辑地址,需手动绑定(如 FastAPI 通过--port指定)。关系:一个进程可绑定多个端口,但一个端口只能被一个进程占用。IP:定位网络中的设备(门牌号)。端口:定位设备内的进程(房间号)。进程:实际处理数据的程序(收件人)。三者协同工作,实现了网络中数据的精准传输和处理网络定位顺序:IP(设备)→ 端口(进程入口)→ 进程(数据接收者)。程序执行层级。

2025-07-30 18:23:02 687

原创 python包的导入,__init__相关问题

当前执行脚本所在的目录PYTHONPATH环境变量中指定的目录Python 安装的默认库目录(如如果你的模块不在这些路径中,Python 就无法找到它,即使文件物理上存在。

2025-07-28 17:19:26 494

原创 redis数据类型

数据类型典型场景字符串缓存、计数器、分布式锁哈希对象存储、配置信息列表消息队列、最新动态集合去重、共同好友、标签系统有序集合排行榜、热门列表、时间线位图用户签到、活跃用户统计大数据量基数统计(UV)地理空间位置服务、附近的人 / 店铺。

2025-07-28 11:40:47 519

原创 neo4j基础操作

基本格式:`MATCH (node1), (node2) CREATE (node1)-[:RELATIONSHIP_TYPE {key: value}]->(node2)``MERGE` 类似于 `MATCH` 或 `CREATE` 的组合,它会尝试匹配现有数据,如果找不到,则创建新的数据。MATCH (a:英雄 {name: '张无忌'}), (b:英雄 {name: '杨逍'})MATCH (n:英雄 {name: '张无忌'})-[:师徒]->(m) RETURN m。

2025-03-29 15:47:58 546

原创 字符 `‘A‘` 的 ASCII 值 `0x41` 转换为二进制和十进制

对于字符 `'A'`,其 ASCII 值是 `0x41`(十六进制表示)。- **二进制**:`01000001` 是计算机底层使用的表示方式,每个位(bit)表示一个开关状态(0 或 1)。- **十六进制**:`0x41` 是一种简洁的方式来表示一个字节(8位)的数据。要将字符 `'A'` 的 ASCII 值 `0x41` 转换为二进制和十进制,我们需要理解不同进制之间的转换方法。- `0x41` 表示的是 `4 * 16^1 + 1 * 16^0`因此,`0x41` 转换为十进制是 `65`。

2025-02-25 21:33:23 665

原创 Python filter()` 和 map()

**`map(function, iterable, ...)`**:用于将一个函数应用到可迭代对象的每一个元素上,并返回一个新的迭代器,包含所有函数调用的结果。- **`filter(function, iterable)`**:用于筛选可迭代对象中的元素,保留那些使 `function` 返回 `True` 的元素。`filter(function, iterable)` 函数用于过滤可迭代对象中的元素,只保留那些使 `function` 返回 `True` 的元素。

2025-02-25 21:05:32 451

原创 web开发--会话、连接池解释

**会话(Session)** 是用户与服务器之间的一次交互过程,用于跟踪用户的状态和数据。- **连接池(Connection Pool)** 是一组预先创建好的数据库连接集合,用于提高数据库操作的效率,减少连接创建和销毁的开销,并优化资源管理。- **Cookie**:通常,服务器会在用户的浏览器中设置一个名为 `session_id` 的Cookie,这个ID用来标识用户的会话。2. **购物车**:用户在浏览商品时,可以将商品添加到购物车中,购物车的内容存储在会话中,直到用户结账为止。

2025-02-24 16:31:59 307

原创 asyncio--事件循环

3. **I/O 多路复用(I/O Multiplexing)**:事件循环使用 I/O 多路复用技术(如 `select`、`poll` 或 `epoll`)来监视多个 I/O 操作,并在这些操作准备好时通知相应的任务。- 在 `main` 协程中,使用 `asyncio.create_task()` 方法将 `task1` 和 `task2` 包装成任务,并安排它们在事件循环中运行。- **Python 的 `asyncio` 模块** 提供了事件循环的实现,使开发者可以轻松编写高效的异步程序。

2025-02-24 16:03:24 826

原创 web网络通信--套接字

2. **拨打电话**:当你想和朋友通话时,你需要拨打他们的电话号码。- **发送和接收数据**:在通话过程中,你可以说话(发送数据),也可以听对方讲话(接收数据)。- **套接字** 是网络通信的基本单元,就像电话机一样,用于在不同的设备或程序之间传递信息。- **创建套接字** 就是初始化一个用于网络通信的对象,设置好通信协议、地址族和套接字类型。- **绑定地址和端口**:就像是告诉别人你的电话号码和分机号,这样他们就知道如何联系你。- **创建套接字**:就像是准备一部电话机,准备好进行通话。

2025-02-24 15:45:18 425

原创 进程和线程实际例子--微信

进程就是微信应用本身,它是独立运行的实体。线程则是微信应用内部为了高效处理不同类型的任务而创建的轻量级执行单位。例如,有的线程负责展示界面,有的线程负责网络通信,等等。这种分工合作的方式使得应用既能快速响应用户的操作,又能有效地管理后台任务。希望这个解释能帮助你更好地理解进程和线程的区别与联系!如果有任何问题,欢迎随时提问。

2025-02-23 16:38:58 611

原创 Python 字典 键的哈希值和值的查找

字典是根据键的哈希值来存储和查找值的,在字典(也称为哈希表或映射)这种数据结构中,每个键值对(key-value pair)的存储和查找操作都是基于键(key)的哈希值来进行的。哈希值是一个数字,它是通过应用一个哈希函数到键上得到的。这个哈希值决定了键值对在字典内部数组或链表中的位置。这种方法使得字典能够在平均情况下实现非常快速的查找、插入和删除操作,时间复杂度接近O(1)。

2024-11-28 14:59:01 510

原创 Python 字典的键和值都可以是什么类型?

在Python中,字典(dict)是一种非常重要的数据结构,它存储键值对(key-value pairs)。关于可以作为字典键和值的类型,有一些规则和最佳实践。

2024-11-28 14:23:24 1571

原创 MySQL 多表查询

【代码】MySQL 多表查询。

2024-11-27 22:33:12 152

原创 MySQL 约束

2024-11-27 20:11:36 157

原创 Django 中Queryset 以及的 QuerySet 缓存机制

Django中的QuerySet缓存机制是一种优化数据库查询性能的重要特性。它允许Django在执行相同的查询时,避免重复访问数据库,而是从缓存中直接获取结果。

2024-11-27 19:06:26 1336

原创 Python字符串所有方法及用法汇总

将字符串的第一个字符转换为大写,其余字符转换为小写。返回一个字符串,其中所有字符都被转换为小写,用于忽略大小写的字符串比较。返回一个原字符串居中,并使用指定的填充字符(默认为空格)填充至指定宽度的新字符串。返回子字符串在字符串中出现的次数,可以指定搜索的起始和结束位置。返回字符串的编码版本(字节对象)。判断字符串是否以指定的后缀结束。将字符串中的制表符(\t)转换为指定数量的空格。返回子字符串在字符串中最低索引(找不到返回-1)。格式化字符串,用指定的值替换花括号{}中的占位符。类似于。

2024-11-27 15:10:38 908

原创 Python高级 可迭代对象 迭代器 生成器 生成器对象 生成器函数

迭代器是可迭代对象的子集:所有迭代器都是可迭代对象,但并非所有可迭代对象都是迭代器。因为迭代器除了要实现__iter__()方法外,还必须实现__next__()方法。生成器是迭代器的子集:生成器是一种特殊的迭代器,它通过函数和yield关键字来产生序列中的元素。

2024-11-26 08:51:37 664

原创 Django如何处理大数据集的查询性能问题?

通过综合运用这些策略,Django应用可以有效地处理大数据集的查询性能问题。然而,需要注意的是,每个项目的具体需求和瓶颈可能不同,因此需要根据实际情况进行针对性的优化。在Django中处理大数据集的查询性能问题涉及多个方面的优化策略。

2024-11-25 20:08:27 507

原创 SQL执行顺序

需要注意的是,这个执行顺序是逻辑上的,而不是物理上的。数据库管理系统(DBMS)可能会根据查询优化器的决策对查询计划进行调整,以提高查询性能。但是,了解这个逻辑顺序对于编写高效和正确的SQL查询至关重要。此外,还有一些其他的SQL子句和概念(如JOIN的类型、子查询、窗口函数等)可能会影响查询的执行顺序和结果,但这些通常都建立在上述基本步骤的基础上。因此,掌握这个基本的执行顺序是理解更复杂查询的基础。SQL查询的执行顺序是一个逻辑处理过程,它决定了如何从数据库中检索和处理数据。

2024-11-25 20:05:06 386

原创 Django 框架中 select_related 和 prefetch_related的区别?

使用SQL JOIN来优化查询,适用于一对一和多对一的关系。通过执行多个查询并在Python中缓存结果来优化查询,适用于多对多和一对多的关系。在选择使用哪种方法时,你应该考虑你的具体模型关系和数据访问模式,以选择最适合你需求的优化策略。

2024-11-25 19:06:58 386

原创 Django10个小问题

在MVC中,模型(Model)处理数据,视图(View)展示界面,控制器(Controller)协调数据和视图。而在MTV中,模型和模板(Template)分别对应MVC的模型和视图,视图(View,这里指MTV中的V,与MVC中的C功能相似)则承担了控制器的部分职责,负责业务逻辑。Django中的M代表模型(Model),负责业务对象和数据库的关系映射(ORM)。视图可以是简单的函数,也可以是复杂的类,但它们的主要职责是处理输入(如表单数据)并返回输出(如网页)。当Django处理一个请求时,它会按照。

2024-11-25 18:40:47 306

原创 Redis的持久化机制吗?

Redis的持久化机制是指将内存中的数据保存到磁盘上,以确保数据在Redis服务器重启或崩溃后不会丢失。Redis提供了两种主要的持久化方式:RDB(Redis Database)持久化和AOF(Append Only File)持久化。

2024-11-25 16:26:10 848

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除