Python教程
未读从零开始学Python(六):数据结构
本系列教程将带你从零开始学习Python编程,无需任何编程基础。
列表(List)列表是Python中最常用的数据结构,用于存储多个有序的元素。创建列表使用方括号,元素之间用逗号分隔。列表可以包含不同类型的元素,比如数字、字符串、布尔值等。
列表索引从0开始,可以使用负数索引从末尾访问元素。列表切片功能强大,可以获取子列表,语法是list[start🔚step],其中start包含,end不包含,step是步长。
列表是可变的,可以修改元素。使用append()方法在末尾添加元素,insert()方法在指定位置插入元素,remove()方法删除指定值,pop()方法弹出并返回末尾元素。len()函数返回列表长度。
遍历列表可以使用for循环直接遍历元素,也可以使用range(len())遍历索引,或者使用enumerate()同时获取索引和值。sort()方法可以对列表排序,reverse=True表示降序。
列表推导式是创建列表的简洁方法,语法是[表达式 for 变量 in 序列 if 条件],比传统方法更简洁高效。
字典(Dictiona ...
LangChain教程
未读从零开始学LangChain(五):Memory 记忆管理
本系列教程将带你从零开始学习LangChain框架,构建强大的AI应用程序。
为什么需要记忆?想象一下与一个”健忘”的机器人对话的情景。用户说”我叫张三”,机器人回答”你好张三!”,但当用户接着问”我叫什么名字?”时,机器人却回答”对不起,我不知道你的名字”。这就是没有记忆的对话。
如果有记忆,当用户再次问”我叫什么名字?”时,机器人会正确回答”你叫张三。”这种能力对对话系统至关重要。
LangChain提供了多种记忆组件来保存和检索对话上下文。ConversationBufferMemory保存所有对话历史,适合短期对话场景。ConversationBufferWindowMemory只保留最近k轮对话,避免token超限,适用于长期对话。ConversationSummaryMemory对历史进行摘要节省token。ConversationKGMemory使用知识图谱存储复杂关系。
ConversationBufferMemory最简单的记忆类型,保存所有对话历史。
基础用法12345678910111213141516 ...
Python教程
未读从零开始学Python(五):函数
本系列教程将带你从零开始学习Python编程,无需任何编程基础。
什么是函数?想象一下,你在写一篇很长的文章,每次想表达”Python是一种编程语言”时,都需要完整写出来。如果有一个快捷方式,比如”语言介绍”,每次只需要输入这几个字,就会自动展开成完整描述,是不是很方便?
函数就是编程中的这种”快捷方式”。它是一段可以重复使用的代码块,能够提高代码的可读性、可维护性和重用性。
内置函数Python提供了很多内置函数,我们已经用过一些。比如打印函数print()、类型转换函数int()和float()、数学函数max()和len()等。这些函数开箱即用,无需定义。
定义函数使用 def 关键字定义函数。基本语法包括:def关键字开头,后面是函数名和圆括号,圆括号内可以放参数,最后以冒号结尾。函数体要缩进,通常使用三引号字符串说明函数的作用。
函数命名建议使用小写字母和下划线,使用动词或动词短语,名字要能描述函数的功能。
函数参数参数让函数能够接收输入数据。函数可以定义单个参数或多个参数,调用时参数的顺序必须和定义时一致。可以为参数设置默认值,调用时可 ...
AIGC
未读GEO简介在DeepSeek、豆包、Qwen、Gemini这样AI搜索引擎上,让产品被搜到或者曝光呢?这涉及到生成引擎优化(Generative Engine Optimization,GEO),就是如何让AI搜索曝光你的产品或者公司。
GEO(生成式引擎优化,英文Generative Engine Optimization)指的是针对由人工智能驱动的搜索引擎(如DeepSeek、豆包、Qwen、Gemini以及谷歌AI摘要功能)进行网站内容优化的一种策略,目的是提升品牌在AI生成的搜索结果中的可见性。具体来说,通过GEO优化,企业的品牌信息可以更频繁地出现在用户利用AI工具搜索与其产品、服务或专业领域相关的问题时生成的回答中。最终,GEO的核心目标是提高网站在AI搜索中的曝光率,精准引流用户,并将网站访问者转化为忠诚的品牌粉丝,让他们持续关注并反复回访。
GEO的关键组成部分: GEO = SEO + RAGAI在搜索的时候有两步:
首先是进行搜索找到相关的内容因为网络搜索涉及极其大量的网页爬取和收录,大多数AI搜索公司是继续调用Google、Bing的搜索功能
AI从搜索结果中, ...
LangChain教程
未读从零开始学LangChain(四):Chains 链式调用
本系列教程将带你从零开始学习LangChain框架,构建强大的AI应用程序。
什么是链?链(Chain)是LangChain的核心概念,它将多个操作串联起来,形成完整的工作流。
想象一下你要制作一份报告。没有链的时候,你需要手动管理每个步骤,先研究主题,然后创建大纲,写草稿,最后润色。每一步都需要单独处理,容易出错。使用链之后,你可以把这些步骤串联起来,形成清晰的工作流,每一步的输出自动成为下一步的输入,既模块化又易于维护。
链的优势主要体现在几个方面:每个环节独立,易于维护;链可以在不同场景重复使用;小链可以组合成大链;可以单独测试每个环节,方便调试。
LCEL基础:LangChain表达式语言LCEL(LangChain Expression Language)是LangChain推荐的声明式方式,使用|操作符连接组件。
LCEL由几个核心组件构成。PromptTemplate是提示词模板,LLM/Chat Model是模型,Output Parser是输出解析器,使用|可以组合成链。
数据在链中的流转过程很清晰。输入数 ...
Python教程
未读从零开始学Python(四):控制流程
本系列教程将带你从零开始学习Python编程,无需任何编程基础。
条件语句条件语句让程序能够根据不同情况执行不同的操作。
if 语句if语句用于判断条件是否成立。
1234age = 18if age >= 18: print("你已经成年了")
if后面的条件必须以冒号:结尾,缩进的代码块是条件成立时执行的代码,Python使用缩进(4个空格)表示代码块。
if-else 语句if-else语句提供两种选择:条件成立执行一个操作,不成立执行另一个。
123456age = 16if age >= 18: print("你已经成年了")else: print("你还未成年")
if-elif-else 语句当有多个条件需要判断时,使用if-elif-else。
12345678910score = 85if score >= 90: print("优秀")elif score >= 80: print("良好")elif score >= 60: print("及格")els ...
LangChain教程
未读从零开始学LangChain(三):Prompts 提示词工程
本系列教程将带你从零开始学习LangChain框架,构建强大的AI应用程序。
什么是提示词工程?提示词工程(Prompt Engineering)是指设计和优化输入给大语言模型的文本,以获得更准确、更符合预期的输出。
想象一下,LLM就像一个非常聪明但需要明确指令的助手。如果你给的指令模糊不清,输出的结果可能不尽如人意。而好的提示词能让LLM准确理解你的意图,给出高质量的回复。
提示词有五个核心要素需要关注。角色设定告诉AI扮演什么角色,比如”你是一位资深Python工程师”。任务描述清晰说明要完成什么,比如”请解释什么是装饰器”。输入数据提供必要的上下文信息,比如具体的代码片段。输出格式指定期望的形式,比如”请用JSON格式返回”。约束条件限制输出的范围或方式,比如”不超过100字”。
提示词模板基础LangChain提供了强大的提示词模板功能,让提示词的管理和复用变得简单。
PromptTemplate最基础的提示词模板类是PromptTemplate。
1234567891011121314151617181920 ...
Python教程
未读从零开始学Python(三):数据类型与变量
本系列教程将带你从零开始学习Python编程,无需任何编程基础。
数学运算Python可以像计算器一样进行各种数学运算。
基本运算符加法5 + 3结果为8,减法10 - 4结果为6,乘法6 * 7结果为42,除法15 / 3结果为5.0(除法总是返回浮点数),整除17 // 5结果为3(整除,去掉小数部分),取余17 % 5结果为2(取余数),幂运算2 ** 3结果为8(2的3次方)。
运算优先级和数学一样,Python运算也有优先级。括号()优先级最高,幂运算**次之,然后是乘、除、整除、取余*、/、//、%,最后是加、减+、-。
123print(2 + 3 * 4) # 14(先乘后加)print((2 + 3) * 4) # 20(先算括号)print(2 ** 3 * 4) # 32(先幂算,再乘法)
数学函数Python内置了一些数学函数。abs(-10)返回绝对值10。round(3.7)四舍五入为4,round(3.2)为3,round(3.14159, 2)保留2位小数为3.14。max(1, 5, ...
OpenSpec CodingAI编程助手虽功能强大,但当需求仅存在于聊天记录中时,其行为往往难以预测。OpenSpec引入了一种轻量级的规范工作流,在实现之前锁定意图,为您提供确定性和可审查的输出结果。
OpenSpec 作为一个为AI编码助手设计的规范驱动开发工具,核心优势:
🚀 轻量级:无需API密钥,最小化设置
🔄 现有项目优先:特别适合修改现有功能 (1→n)
📋 变更跟踪:提案、任务和规范差异的完整生命周期管理
🤖 AI工具集成:支持多种主流AI编码助手
为什么需要 OpenSpec Coding传统AI编码助手的问题:当您使用AI编码助手时,是否遇到过以下情况:
❌ AI根据模糊提示生成不符合需求的代码
❌ 遗漏重要功能要求
❌ 添加了不必要的功能
❌ 代码行为不可预测
OpenSpec的解决方案OpenSpec通过规范驱动开发解决这些问题:
✅ 明确共识:在编码前确定所有要求
✅ 结构化变更:所有相关文档集中管理
✅ 可审查输出:AI根据明确规范生成代码
✅ 版本控制:完整追踪所有变更历史
安装配置 OpenSpec
准备工作
1234567891 ...
LangChain教程
未读从零开始学LangChain(二):Models 模型详解
本系列教程将带你从零开始学习LangChain框架,构建强大的AI应用程序。
什么是Models?在LangChain中,Models是指与大语言模型(LLMs)交互的接口。LangChain提供了统一的API,让你可以轻松切换不同的模型提供商,而无需修改代码。
LangChain支持两种主要的模型类型。LLM是大语言模型,接收文本字符串并返回文本字符串,适用于文本补全、翻译、摘要等场景。Chat Model是聊天模型,接收消息列表并返回消息,专为对话系统和聊天机器人设计。
核心区别在于输入输出的格式。LLM输入字符串输出字符串,而Chat Model输入消息列表输出消息对象。
LLM 使用指南LangChain提供了多种LLM的集成,包括OpenAI、Anthropic、Hugging Face等。
使用OpenAI LLM123456789101112from langchain_openai import OpenAI# 初始化LLM(使用text-davinci-003等模型)llm = OpenAI( mod ...
Python教程
未读从零开始学Python(二):Python基础语法
本系列教程将带你从零开始学习Python编程,无需任何编程基础。
什么是变量?想象一下,变量就像一个有标签的盒子。你可以在盒子里放东西,也可以随时更换里面的东西。
123456789# 创建一个名为 "name" 的变量,在里面放入 "张三"name = "张三"# 创建一个名为 "age" 的变量,在里面放入数字 25age = 25# 打印变量的值print(name)print(age)
输出会显示”张三”和”25”。
变量赋值在Python中,使用=符号给变量赋值。注意:=不是数学中的”等于”,而是”赋值给”的意思。
1234x = 10 # 将数字10赋值给变量xy = 20 # 将数字20赋值给变量yprint(x) # 输出:10print(y) # 输出:20
更改变量的值你可以随时更改变量中的值,就像更换盒子里的东西。
12345score = 80print(score) # 输出:80score = 95print(score) # 输出:95
变量命名规则给变 ...
LangChain教程
未读从零开始学LangChain(一):LangChain简介与环境搭建
本系列教程将带你从零开始学习LangChain框架,构建强大的AI应用程序。
什么是LangChain?LangChain是一个强大的框架,用于开发由大型语言模型(LLMs)驱动的应用程序。
想象一下,LLM就像一个超级聪明的大脑,但它需要手脚才能真正做事。LangChain就是为这个大脑提供”手脚”的工具集。
LangChain的核心价值主要体现在几个方面:提供标准化接口统一不同LLM提供商的调用方式,支持链式调用将多个操作串联形成复杂工作流,能够集成外部工具如搜索引擎和数据库,提供对话历史的持久化存储,以及适用于聊天机器人、文档问答、代码生成等多种应用场景。
LangChain的核心组件LangChain由几个核心组件构成。Models负责调用各种LLM,相当于大脑;Prompts用于管理和优化提示词,代表思考方式;Chains串联多个操作,形成工作流程;Memory存储对话历史,提供记忆力;Agents负责自主决策和工具使用,扮演自主助手角色;Tools连接外部服务,就像是手和脚。
环境准备在开始之前,确保你 ...
Python教程
未读从零开始学Python(一):Python简介与环境搭建
本系列教程将带你从零开始学习Python编程,无需任何编程基础。
什么是Python?Python是一种高级编程语言,由荷兰程序员Guido van Rossum在1991年创建。它的名字来源于英国喜剧团体”Monty Python”(蒙提·派森),而不是蟒蛇。
为什么选择Python?想象一下,如果你要用一种语言和世界各地的朋友交流,你会选择一种语法简单、表达清晰、容易学习的语言。Python就是编程世界的这种语言。
Python语法接近英语,即使没有编程基础也能快速理解。从网站开发到人工智能,从数据分析到自动化办公,Python功能强大无所不能。全球有数百万Python开发者,社区活跃遇到问题很容易找到解决方案。Python跨平台,无论是Windows、Mac还是Linux都能运行。
Python的应用领域Python在网站开发领域应用广泛,YouTube、Instagram、豆瓣都使用Python构建。在数据科学方面,Python是数据分析、机器学习、人工智能的首选语言。自动化办公、爬虫、测试脚本也是Python的强项。 ...
AIGC
未读年终总结格式大概长这样:开头,写几句“这一年我在和公司一起奋斗”之类的话。中间,把12个月的月报汇总一下。结尾,写成长和不足,以及对未来的展望。
Quick Start12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455# 角色:经验丰富的XX(你的职位/工种)- 你是一个两年半经验的XX,工作认真细致,善于总结和归纳,能结合市场环境、公司状况以及实际工作内容,做出分析总结,指出自己的闪光点和进步方向。# 任务:攥写年终总结- 按照框架要求,运用自身能力及附件内容,写出总结,以markdown的形式返回,最好图文并茂。- 可参考公司官网url,公众号,以及内部知识库{{2025年度XX部门月报}}{{2025年度XX部门会议纪要}}。# 总结框架:- 部分1. 提纲挈领的描述所在公司这一年的状态,点出我与公司的关系,为正式总结做铺垫。例如“过去一年,市场发生了XX变化,我们的行业也随着XX,我司/我部门在XXX的领导下,秉持XXX的战 ...
FastAPI 项目配置此文件为使用 Claude Code 进行 FastAPI Web 应用开发提供具体指导。
项目概述这是一个为现代API开发优化的FastAPI应用项目,具有自动文档生成、类型提示和异步支持功能。
FastAPI 专用开发命令项目管理
uvicorn app.main:app --reload - 启动带自动重载的开发服务器
uvicorn app.main:app --host 0.0.0.0 --port 8000 - 在所有接口上启动服务器
uvicorn app.main:app --workers 4 - 启动多进程服务器
数据库管理
alembic init alembic - 初始化 Alembic 迁移
alembic revision --autogenerate -m "message" - 创建迁移
alembic upgrade head - 应用迁移
alembic downgrade -1 - 回滚一个迁移
开发工具
python -m pytest - 运行测试
python -m pytest --cov=app - 运行带覆 ...
FastAPI 项目配置此文件为使用 Claude Code 进行 FastAPI Web 应用开发提供具体指导。
项目概述这是一个为现代API开发优化的FastAPI应用项目,具有自动文档生成、类型提示和异步支持功能。
FastAPI 专用开发命令项目管理
uvicorn app.main:app --reload - 启动带自动重载的开发服务器
uvicorn app.main:app --host 0.0.0.0 --port 8000 - 在所有接口上启动服务器
uvicorn app.main:app --workers 4 - 启动多进程服务器
数据库管理
alembic init alembic - 初始化 Alembic 迁移
alembic revision --autogenerate -m "message" - 创建迁移
alembic upgrade head - 应用迁移
alembic downgrade -1 - 回滚一个迁移
开发工具
python -m pytest - 运行测试
python -m pytest --cov=app - 运行带覆 ...
最常用Skill清单at-dispatch-v2底层开发工具,专门用来把 PyTorch 的 AT_DISPATCH 宏转换为新版 v2 格式。如果你在做 ATen C++ 代码迁移、写 CUDA 内核,这个能帮你自动处理调度宏的升级。
add-unit-support自动分析源代码并生成完整的测试用例。它会覆盖边界条件、错误场景和异常情况,还能识别代码中未测试的部分。
skill-writer帮写符合规范的 SKILL.md 文件。包括 YAML 元数据配置、目录结构规范、最佳实践这些。正文控制在 500 行以内,复杂内容分拆到子文件,这些它都会指导你。
docstring自动为代码生成标准化的文档字符串和注释。它会分析代码上下文,理解函数的输入输出、副作用和异常情况,然后生成有意义的文档。
skill-creator通过交互式对话引导你创建 Skills。和 skill-writer 不同,skill-writer 是给你规范让你自己写,skill-creator 是一步步问你问题,最后自动生成完整的 Skill。适合新手,不用记那么多规范。
skill-installer一键安装 ...
Spec Coding 使用巧用 Spec-Kit,把AI训练成靠谱工程师!
Vibe Coding VS Spec Coding
Vibe Coding: 靠感觉、靠默契、反复试错,在跟AI的不断拉扯中勉强推进的开发模式,就是现在最火的—— “Vibe Coding”(感觉式编程)
在小项目里跑跑还行,项目复杂、团队一扩大,各种弊端就全暴露了:
需求理解全靠猜:AI常常“会错意”,做出来的东西跟想的完全是两码事。
技术选型像开盲盒:AI可能随手就选个你完全不熟的技术栈,后续维护火葬场。
代码质量堪忧:生成的代码能跑,但结构乱七八糟,别说交接了,自己看都费劲。
协作基本为零:除了你和AI,没人知道这功能是怎么“感觉”出来的,新同事来了只能干瞪眼。
结果呢?我们把大把时间都浪费在了跟AI的反复沟通和修改上,而不是真正地创造价值。
Spec Coding(规范式编程): 既能用上AI的超能力,又能保证软件开发的工程质量和确定性,正在掀起一场AI编程的范式革命。
Spec-Kit是啥?从“代码为王”到“规范为王”,Spec-Kit不是一个新的AI编程工具,它是一套工作流和方法论。它 ...
角色设定:1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374你是一位世界级的 Creative Technologist,精通 Three.js (WebGL)、GLSL 着色器逻辑以及 Google MediaPipe 计算机视觉集成。任务目标:请编写一个单文件 ( Single-File ) 的 HTML 项目,文件名为圣诞树。该项目必须包含完整的 HTML 结构、CSS 样式和基于 ES Module 的 JavaScript 代码。核心技术栈约束 (必须严格遵守):依赖管理: 使用 `<script type="importmap">` 引入:three: https://cdn.jsdelivr.net/npm/three@0.160.0/build/three.module.jsthree/addons/: https://cdn.j ...
14条原则1. 想清楚 + prompt > 一切
好的 prompt 来自对需求的清晰思考
2.脚手架 > 模型
系统架构比用哪个模型更重要
3.尽可能确定性
AI 是概率性的,但你的基础设施不该是
4.代码优先于提示
能用脚本解决,就别用 AI
5.规范/测试/评估优先
动手之前,先写规范和测试
6.UNIX 哲学
做好一件事,让工具可组合
7.工程/SRE 原则
像对待生产软件一样对待 AI 基础设施
**8.命令行优先 **
CLI 比 GUI 更快、更好脚本化、更稳
9.决策层级
目标 → 代码 → 命令行 → 提示 → 智能体
10.自更新系统
系统能改自己,学过的东西不会忘
11.定制化技能管理
模块化能力,智能路由
12.定制化历史系统
值得记的东西都会被存下来
13.定制化智能体个性
不同的活需要不同的干法
14.科学认知循环
假设 → 实验 → 测量 → 迭代
原则 1:想清楚 + prompt > 一切这是所有原则的地基。重点是:想清楚问题, 谋定而后动。AI 是 ...

















