首页
/ Flask API 参考详解:从应用对象、上下文代理、会话与路由到信号和 CLI 的核心接口全解析

Flask API 参考详解:从应用对象、上下文代理、会话与路由到信号和 CLI 的核心接口全解析

2026-09-03 15:35:26作者:滕妙奇

本文基于 Flask 官方 API 参考文档(docs/api.rst)编写,系统讲解 flask 包对外暴露的全部核心接口:Flask 应用对象、Blueprint、请求/响应对象、session/g/current_app 上下文代理、JSON 与模板渲染、路由注册规则、信号、类视图以及命令行接口。读完后你可以脱离速查手册,直接依据仓库源码理解每个 API 的行为边界、默认值与底层实现位置,快速定位问题并正确使用这些接口。本文对应仓库中 3.2.0 开发版本(见 pyproject.tomlCHANGES.rst)。

API 总体结构:flask/__init__.py 导出了什么

Flask 的公开 API 集中在 src/flask/init.py 中统一导出,它把分散在各子模块的实现聚合为 from flask import ... 可用的一级命名空间:

导出对象 来源模块 职责
FlaskBlueprintConfig src/flask/app.pysrc/flask/sansio/blueprints.pysrc/flask/config.py 应用对象、蓝图、配置对象
requestsessiongcurrent_app src/flask/globals.py 上下文局部代理
url_forabortredirectmake_responsesend_filesend_from_directoryflashget_flashed_messagesstream_with_context src/flask/helpers.py 实用函数
after_this_requesthas_app_contexthas_request_contextcopy_current_request_context src/flask/ctx.py 上下文工具
jsonifydumpsloads src/flask/json/init.py JSON 支持
render_templaterender_template_stringstream_templatestream_template_string src/flask/templating.py 模板渲染
RequestResponse src/flask/wrappers.py WSGI 请求/响应包装器
10 个核心信号(request_started 等) src/flask/signals.py 事件通知(基于 Blinker)

官方文档说明:对于 Flask 依赖外部库的部分(如 Blinker、Werkzeug 路由),文档只在关键处给出说明并指向规范文档;本文在相应章节中补充了这些依赖点在仓库中的位置。

应用对象:Flask

Flask 是整个框架的中心对象,它实现了一个 WSGI 应用,并作为视图函数、URL 规则、模板配置等的注册中心,定义位于 src/flask/app.py

构造参数

from flask import Flask
app = Flask(__name__)

__init__ 接受的参数(见 src/flask/app.py):

参数 说明
import_name 应用包名。单模块用 __name__;包形式推荐硬编码包名(如 Flask('yourapplication')),否则扩展的调试信息可能不完整
static_url_path 静态文件的 Web 路径,默认与 static_folder 同名
static_folder 静态文件目录,默认 'static',相对 root_path 或绝对路径
static_host 静态路由使用的 host,使用 host_matching=True 且配置了 static_folder 时必需
host_matching 设置 url_map.host_matching,默认 False
subdomain_matching 相对 SERVER_NAME 匹配子域,默认 False
template_folder 模板目录,默认应用根路径下的 'templates'
instance_path 实例目录,默认为包/模块旁的 instance 文件夹
instance_relative_config True 时相对配置文件名相对实例路径解析
root_path 仅在无法自动检测时(如命名空间包)手动设置

构造函数还会做两件值得注意的事:创建 Click 命令组 self.cli(供 flask 命令在发现应用后注册 CLI 命令),并在 static_folder 存在时自动注册 {static_url_path}/<path:filename> 的静态路由(用 weakref 避免应用与视图函数间的引用环,见 src/flask/app.py)。

关键类属性与默认配置

  • request_class / response_class:默认请求/响应类,替换它们即可全局定制 WSGI 对象(见 src/flask/app.py)。
  • session_interface:默认是 SecureCookieSessionInterface() 实例,用于替换会话实现(0.8 引入)。
  • Flask.default_config:内置默认配置字典,包括 DEBUG: NoneTESTING: FalseSECRET_KEY: NonePERMANENT_SESSION_LIFETIME: timedelta(days=31)SESSION_COOKIE_NAME: "session"SESSION_COOKIE_HTTPONLY: TrueMAX_FORM_MEMORY_SIZE: 500_000MAX_FORM_PARTS: 1_000MAX_COOKIE_SIZE: 4093PROVIDE_AUTOMATIC_OPTIONS: True 等,完整定义见 src/flask/app.py

蓝图注册

register_blueprint(blueprint, **options)src/flask/sansio/app.py)在把蓝图记入 app.blueprints 后调用其 register 方法,支持的选项:

  • url_prefix:为蓝图路由加前缀;
  • subdomain:蓝图路由匹配的子域;
  • url_defaults:视图参数默认值;
  • name(2.0.1 起):改变蓝图注册名,允许同一蓝图以不同名注册多次,从而在 url_for 中区分;
  • 其余关键字参数传给 BlueprintSetupState,可在 Blueprint.record 回调中读取。

请求入口与工具方法

  • wsgi_app:WSGI 入口(src/flask/app.py 附近),内部走 full_dispatch_requestsrc/flask/app.py)。
  • test_client(use_cookies=True, **kwargs):返回 FlaskClient 实例,供单元测试发起请求。
  • url_for(...)src/flask/app.py):生成 URL。参数包括 endpoint(以 . 开头时相对当前蓝图解析)、_anchor(追加 #anchor)、_method_scheme_external(强制内部/外部 URL),其余关键字作为 URL 变量值,未知键会拼成查询串。请求外调用默认生成外部 URL,此时必须配置 SERVER_NAME(以及按需配置 APPLICATION_ROOTPREFERRED_URL_SCHEME),否则抛出 RuntimeError;构建失败会先交给 handle_url_build_error
  • make_response(rv)src/flask/app.py):把视图返回值转换为 response_class 实例,支持 strbytesdict(自动 jsonify)等返回形态,禁止返回 None

Blueprint 对象

Blueprint 定义于 src/flask/sansio/blueprints.py,是路由、模板、静态资源与事件回调的分组载体。它本身不直接处理请求,而是被 register_blueprint 挂载到应用时展开;挂载期间的状态由 BlueprintSetupState 承载,Blueprint.record 注册的回调会收到该对象,从而读取 register_blueprint 传入的 options。官方 API 文档为 Blueprint 生成全部成员(含继承成员)的参考页,仓库中可通过 tests/test_blueprints.py 验证嵌套蓝图、name 选项等注册行为。

传入请求数据:Request 与 request 代理

Request 类

Flask 默认的请求对象是 src/flask/wrappers.py 中的 Request,它是 Werkzeug Request 的子类,在 Werkzeug 全部属性之外增加了 Flask 特有的路由状态:

  • url_rule:匹配到的内部 URL 规则(0.6 起提供),可检查该 URL 允许的方法;
  • view_args:匹配到的视图参数字典,匹配失败时为 None
  • routing_exception:URL 匹配失败时的异常(通常是 NotFound 类);
  • endpoint / blueprint / blueprints 属性:分别返回匹配的端点名、当前蓝图注册名及其祖先链(blueprints 2.0.1 起提供)。

从源码结构看,3.1 起还新增了三个可按请求覆盖的限额属性(src/flask/wrappers.py):max_content_length(超限抛 413)、max_form_memory_size(非文件表单字段上限,默认 500 KB)、max_form_parts(multipart 字段数上限,默认 1000)。每个请求默认取应用配置值,也可以对单个 request 设置以仅约束特定视图。

request 全局代理

from flask import request

request 是当前请求的代理,类型为 Request 实例,仅在请求上下文激活时可用(上下文机制见 应用上下文)。在 src/flask/globals.py 中它被实现为基于 ContextVar("flask.app_ctx")LocalProxy,未绑定时访问会抛出带有 "Working outside of request context" 提示的错误,直接告诉你缺少请求上下文。

响应对象:Response

Flask.Response 定义于 src/flask/wrappers.py,是 Werkzeug Response 的子类,两点定制:

  1. 默认 MIME 类型为 text/htmldefault_mimetype = "text/html");
  2. 从 1.0 起内置 JSON 支持(json_module = json),测试时可用 response.json 取 JSON 数据;max_cookie_size 属性只读地转发 MAX_COOKIE_SIZE 配置,无应用上下文时回退到 Werkzeug 默认。

通常无需手动创建它:make_response 会替视图返回值转换。要全局替换响应对象,子类化后赋给 Flask.response_class 即可。

会话:session、SessionInterface 与 Cookie 实现

基本用法与安全性前提

设置 app.secret_key(或配置 SECRET_KEY)后即可使用会话。Flask 用签名 Cookie 保存数据:用户能看到内容,但不知道密钥就无法篡改,因此密钥必须是复杂且不可猜测的值。访问当前会话使用 session 代理(src/flask/globals.py),它同样是 ContextVar 上的 LocalProxy,仅在请求上下文内可用。

session 像 dict 但会追踪键的赋值与访问;注意它无法追踪可变值内部的变化,修改列表、字典等必须手动置位:

# 追加到列表不会被检测到
session["numbers"].append(42)
# 需要手动标记为已修改
session.modified = True

实现上,SecureCookieSession 继承 Werkzeug 的 CallbackDict,每次字典更新触发 on_update 回调将 modified 置为 True,这正是“追踪赋值”的底层机制。会话通过 Cookie 跨请求持久化;默认浏览器关闭即清除 Cookie,设置 session.permanent = True 后,Cookie 的有效期为 PERMANENT_SESSION_LIFETIME(默认 31 天,见 default_config)。

SessionMixin 属性

SessionMixin 为会话字典扩展了四个属性:

  • permanent:映射字典中的 _permanent 键;
  • new:是否为新会话。实现不保证能检测,混入类默认硬编码 False
  • modified:是否被修改,混入类默认 True
  • accessed:是否被访问过(包括只查键不改值的操作,如 inlen,3.1.3 起补齐),为 True 时响应会带 Vary: cookie 头。

会话接口体系

替换默认会话实现只需实现 open_sessionsave_session 两个方法,其余有可用默认值(SessionInterface)。官方建议会话对象直接继承 dict 并混入 SessionMixin

class Session(dict, SessionMixin):
    pass
  • open_session 返回 None,Flask 调用 make_null_session 生成兜底会话;默认的 NullSession 允许只读访问空会话,但任何写入都会抛出 RuntimeError("The session is unavailable because no secret key was set...")——这就是未设置 secret_key 时写会话会报错的来源。
  • SecureCookieSessionInterface 是默认实现,其 open_sessionsrc/flask/sessions.py)用 itsdangerous.URLSafeTimedSerializer 反序列化签名 Cookie,save_sessionsrc/flask/sessions.py)把序列化结果写回响应 Cookie。

注意:PERMANENT_SESSION_LIFETIME 配置可以是整数(秒)或 timedelta,而 app.permanent_session_lifetime 属性始终是 timedelta(源码中由 _make_timedelta 转换,见 src/flask/app.py)。

相关测试见 tests/test_session_interface.py

测试客户端与测试 CLI

FlaskClient(继承 Werkzeug Client)由 app.test_client() 创建,支持 use_cookies=True 等参数,是单元测试发起请求的标准入口;FlaskCliRunner 用于在测试中执行应用的 Click 命令。两者均在 src/flask/testing.py 中定义,配套测试见 tests/test_testing.pytests/test_cli.py

应用全局变量:g、current_app 与上下文检查

在函数间共享“仅当前请求有效”的数据不能依赖普通全局变量(线程环境下会串),Flask 提供的 g 正是这种上下文局部对象。g 是一个命名空间代理,指向 _AppCtxGlobals 实例(src/flask/ctx.py,即 Flask.app_ctx_globals_class 的默认值),典型用法是在 before_request 中按会话 ID 加载用户后写入 g.user 供视图使用。0.10 起它绑定到应用上下文而非请求上下文,因此仅在应用上下文激活时可用。

current_app 是当前处理请求的 Flask 应用代理,适合在无法导入应用的地方(应用工厂模式、蓝图、扩展内)访问应用。同样仅在应用上下文内可用。

上下文工具函数(src/flask/ctx.py):

  • has_request_context()src/flask/ctx.py):是否存在活动请求上下文;
  • has_app_context()src/flask/ctx.py):是否存在活动应用上下文;
  • copy_current_request_context(f)src/flask/ctx.py):装饰器,把当前请求上下文复制到被装饰函数(例如启动独立线程处理请求数据时);
  • after_this_request(f)src/flask/ctx.py):注册请求结束回调,回调接收 response 并可返回新响应。

这些代理的共同实现见 src/flask/globals.py:一个名为 flask.app_ctxContextVar 存当前 AppContextapp_ctxcurrent_appg 从它取 .app/.grequestsession.request/.session。未绑定上下文时的报错文案("Working outside of application/request context...")也定义在此文件,遇到此类报错可直接对照 应用上下文文档

实用函数

以下函数从 src/flask/helpers.py 导出(url_for 除外,见上文应用对象一节):

  • url_for(endpoint, **values):模板与代码中生成 URL,委托给 app.url_for
  • abort(code_or_response):中止当前请求并抛出对应 HTTP 异常(或重定向响应);
  • redirect(location, code=302, ...):返回重定向响应。注意 3.2 起默认状态码从 302 改为 303,提示客户端一律切换为 GET(见 CHANGES.rst);
  • make_response(rv):把视图返回值转为响应对象,可传 statusheaders
  • after_this_request(f):请求结束回调;
  • send_file(path_or_file, ...) / send_from_directory(directory, filename, ...):发送文件/目录内文件,支持条件请求、conditionalmax_age 等参数;
  • get_template_attribute(template_name, attribute)src/flask/helpers.py):从模板读取 Jinja 变量/函数。

消息闪现:flash 与 get_flashed_messages

flash(message, category="message")src/flask/helpers.py)把消息存入会话,下一次请求时由 get_flashed_messages(with_categories=False, category_filter=(), latest_only=False)src/flask/helpers.py)取出,并在模板侧配合 get_flashed_messages 全局函数使用。每次 flash 会发出 message_flashed 信号(后文信号章节有示例),该模式详见 patterns/flashing.rst

JSON 支持

Flask 默认使用 Python 内置 json 模块处理 JSON,但 JSON 行为由应用级 JSON provider 驱动:通过 app.json_provider_classapp.json 属性可以整体替换实现。flask.json 中的函数在应用上下文激活时会使用 app.json 的方法。模块位置:src/flask/json/init.pysrc/flask/json/provider.pysrc/flask/json/tag.py

核心接口:

  • jsonify(*args, **kwargs)src/flask/json/init.py):返回 JSON 响应,支持字典、列表或成对参数;
  • dumps(obj, **kwargs) / loads(s, **kwargs):序列化/反序列化,dump/load 为其历史别名;
  • JSONProvider:抽象基类,定义 dumps/loadsresponsedefault 钩子等扩展点;
  • DefaultJSONProvider:默认实现,可序列化 datetimeuuiddataclasses 等;
  • src/flask/json/tag.pyTaggedJSONSerializer 提供带类型标签的 JSON(用于会话等需要保真的场景)。

Jinja 的 |tojson 过滤器已配置为使用应用的 JSON provider,并自动追加 |safe,因此可安全地把数据渲染进 HTML <script> 标签:

<script>
    const names = {{ names|tojson }};
    renderChart(names, {{ axis_data|tojson }});
</script>

JSON 行为的完整测试见 tests/test_json.pytests/test_json_tag.py

模板渲染

src/flask/templating.py 提供四个渲染入口(上下文规则与自动转义见 templating 文档):

  • render_template(template_name_or_endpoint, **context)src/flask/templating.py):按名字/端点渲染模板为字符串;
  • render_template_string(source, **context)src/flask/templating.py):直接渲染模板源码字符串;
  • stream_template / stream_template_stringsrc/flask/templating.py / #L200):生成器版本,逐块产出模板输出,适合大型模板流式响应;
  • get_template_attribute:读取模板中的变量或函数。

配置:Config

Config 是 dict 的子类,提供三种填充方式(见类文档与 config 文档):

# 从 Python 文件加载(只收集大写键)
app.config.from_pyfile('yourconfig.cfg')

# 从对象/模块加载
DEBUG = True
SECRET_KEY = 'development key'
app.config.from_object(__name__)

# 从环境变量指向的文件加载
app.config.from_envvar('YOURAPPLICATION_SETTINGS')

from_pyfile 时文件路径相对应用的 root_path 解析;ConfigAttribute 描述符(src/flask/config.py)让 app.secret_keyapp.debug 等属性透明地读写 config 字典,并支持 get_converter 做值转换(例如把 PERMANENT_SESSION_LIFETIME 整数转为 timedelta)。

流辅助:stream_with_context

stream_with_context(generator)src/flask/helpers.py)包装生成器响应:默认情况下生成器在请求上下文之外执行,使用该函数可让生成器逐块读取 request 等上下文对象,适合边读请求边流式产出的场景。

核心内部对象

  • AppContext:应用上下文,持有当前应用、g 实例与 URL adapter,是 Flask 处理请求的基础设施;3.2 起与请求上下文合并为单一上下文(RequestContext 仅为弃用别名,4.0 移除,见 CHANGES.rst)。
  • flask.globals.app_ctx:活动 AppContext 的代理,内部对象,多数情况下你更需要 current_appgrequestsessionrequest_ctx 是 3.2 弃用的旧别名。
  • BlueprintSetupState:蓝图注册时的状态对象,供 record 回调使用。

信号(Blinker)

信号由 Blinker 库提供,Flask 核心信号全部定义在 src/flask/signals.py,是同一 Namespace 下的具名信号,介绍见 signals 文档。核心信号列表:

信号 触发时机
template_rendered 模板渲染成功后,传 templatecontext
before_render_template 模板渲染前,传 templatecontext
request_started 请求上下文建立后、任何请求处理之前
request_finished 响应发回客户端之前,传 response
got_request_exception 请求处理中出现未处理异常(包括调试期),传 exception;已注册错误处理器的 HTTPException 不触发
request_tearing_down 请求拆卸时,异常发生时也一定调用;0.9 起传 exc 关键字
appcontext_tearing_down 应用上下文拆卸时,同样保证调用,传 exc
appcontext_pushed 应用上下文入栈时(0.10 起),sender 为应用
appcontext_popped 应用上下文出栈时(0.10 起)
message_flashed flash 调用时,传 messagecategory(0.10 起)

典型订阅示例(来自官方文档):

def log_template_renders(sender, template, context, **extra):
    sender.logger.debug('Rendering template "%s" with context %s',
                        template.name or 'string template', context)

from flask import template_rendered
template_rendered.connect(log_template_renders, app)

request_started 的订阅者此时已可访问 request 代理;request_finished 的订阅者收到待发送的 response。对于 got_request_exception,官方示例展示了如何只对特定异常类型做额外日志(如 SecurityException)。appcontext_pushed 常用于测试中临时注入 g 数据,文档给出的完整模式是用 contextmanager 包裹 appcontext_pushed.connected_to(handler, app),在测试客户端请求期间临时设置 g.userrequest_tearing_down / appcontext_tearing_down 适合关闭数据库会话等资源,且即使请求抛异常也会被调用(当前在常规 teardown 处理器之后触发,但不保证该顺序)。

类视图:View 与 MethodView

0.7 起提供类视图。View 通过 as_view() 把类实例化为可调用的视图对象;MethodView 按 HTTP 方法分发到 getpostputdeletepatch 等同名方法,是 REST 风格端点的常见写法。使用见 views 文档tests/test_views.py

URL 路由注册

定义路由规则有三种方式:

  1. Flask.route 装饰器(src/flask/sansio/scaffold.py);
  2. Flask.add_url_rulesrc/flask/sansio/app.py);
  3. 直接操作暴露为 Flask.url_map 的 Werkzeug 路由系统。

变量转换器

路由变量用尖括号表示(/user/<username>)。默认 string 接受不含斜杠的任意文本,可用 <converter:name> 指定其他转换器。内置转换器:

转换器 说明
string 接受不含斜杠的任意文本(默认)
int 接受整数
float 类似 int,针对浮点数
path 类似默认,但接受斜杠
any 匹配给定项之一
uuid 接受 UUID 字符串

自定义转换器通过 Flask.url_map 定义,测试见 tests/test_converters.py。变量会以关键字参数传给视图函数:

@app.route('/')
def index():
    pass

@app.route('/<username>')
def show_user(username):
    pass

@app.route('/post/<int:post_id>')
def show_post(post_id):
    pass

尾斜杠规则

为使每个 URL 唯一,规则如下:

  1. 规则以斜杠结尾而请求不带斜杠时,自动 308 重定向到带斜杠的页面;
  2. 规则不以斜杠结尾而请求带斜杠时,抛 404。

这与 Web 服务器处理静态文件的方式一致,也使相对链接目标可以安全使用。

多规则与默认值

同一视图可以注册多条唯一规则,并可指定默认值:

@app.route('/users/', defaults={'page': 1})
@app.route('/users/page/<int:page>')
def show_users(page):
    pass

/users/ 是第 1 页,/users/page/N 是第 N 页。若 URL 含默认值,访问完整形式会被 308 重定向到更简单的形式(/users/page/1/users/)。注意:如果路由同时处理 GETPOST,默认值路由应只处理 GET,因为重定向无法保留表单数据:

@app.route('/region/', defaults={'id': 1})
@app.route('/region/<int:id>', methods=['GET', 'POST'])
def region(id):
    pass

route / add_url_rule 参数

两者参数一致,唯一区别是 route 用装饰器定义视图函数、add_url_ruleview_func 参数:

参数 说明
rule URL 规则字符串
endpoint URL 规则端点名;未显式给出时默认取视图函数名
view_func 处理该端点请求的函数;不传之后可通过 app.view_functions 字典以端点为键补存
defaults 该规则的参数字典
subdomain 启用子域匹配时的子域规则,未指定则用默认子域
**options 转发给底层 Werkzeug Rule 的选项;methods 限定规则响应的方法列表(GETPOST 等),以关键字参数传入。默认只监听 GET(隐含 HEAD);Flask 0.6 起自动加入并处理 OPTIONS

源码层面,add_url_rule 还会:未给 methods 时读取视图函数的 methods 属性,否则默认 ("GET",);合并视图函数的 required_methods;按 PROVIDE_AUTOMATIC_OPTIONS 配置与 provide_automatic_options 属性决定是否自动加 OPTIONS;端点冲突(同一端点绑定不同函数)会直接 AssertionError

视图函数选项

视图函数对象可以挂载若干属性以覆盖默认行为(add_url_rule 会读取它们):

  • __name__:默认用作端点名,显式 endpoint 优先;蓝图前缀默认附加在前面,无法从函数本身定制;
  • methods:注册规则时未传 methods,则从视图函数对象的 methods 属性读取;
  • provide_automatic_options:强制启用或禁用 HTTP OPTIONS 自动响应,适合需要按视图定制 OPTIONS 的装饰器(0.8 起;3.2 起可强制启用,即使全局配置禁用了它);
  • required_methods:注册 URL 规则时总会追加这些方法,即使 route() 调用显式覆盖了 methods

完整示例:

def index():
    if request.method == 'OPTIONS':
        # 自定义 OPTIONS 处理
        ...
    return 'Hello World!'
index.provide_automatic_options = False
index.methods = ['GET', 'OPTIONS']

app.add_url_rule('/', index)

命令行接口(CLI)

CLI 相关 API 位于 src/flask/cli.py

  • FlaskGroup:基于 Click 的命令组,flask 命令发现应用后从它和已注册蓝图中收集命令;
  • AppGroup:单个应用上的命令组(即 app.cli),把 app 注入命令上下文,支持懒加载应用;
  • ScriptInfo:保存如何定位应用工厂/应用实例的元数据(create_app 入口、参数等);
  • load_dotenv:加载 .env 文件到环境变量(flask run 默认行为之一);
  • with_appcontext:装饰器,使命令回调在应用上下文内执行;
  • pass_script_info:装饰器,把 ScriptInfo 实例作为首参传入回调;
  • run_command / shell_command:内置的 flask run(开发服务器)与 flask shell 命令。

配合 CLI 文档tests/test_cli.py,可以验证命令发现、环境变量加载、--app 参数等实际行为。

小结

docs/api.rst 覆盖的接口可归为四类:中心对象(FlaskBlueprintConfig)、上下文体系(requestsessiongcurrent_app 及其 LocalProxy + ContextVar 实现)、请求生命周期工具(路由注册、响应构造、JSON/模板、流式响应、信号)与工程支撑(测试客户端、CLI)。3.2 开发版的重要变化包括:RequestContext 并入 AppContext(旧别名将在 4.0 移除)、redirect 默认状态码改为 303、请求分发相关方法以 ctx 为首参(旧签名仍兼容但已弃用)。使用任一接口时,按本文给出的相对路径可直接在仓库中对照实现,确认默认值、错误路径与版本适用前提。

登录后查看全文
热门项目推荐
相关项目推荐

项目优选

收起
kernelkernel
deepin linux kernel
C
33
18
ops-transformerops-transformer
本项目是CANN提供的transformer类大模型算子库,实现网络在NPU上加速计算。
C++
1.12 K
2.72 K
kernelkernel
openEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。
C
528
588
ops-nnops-nn
本项目是CANN提供的神经网络类计算算子库,实现网络在NPU上加速计算。
C++
906
1.82 K
pytorchpytorch
作为 Ascend for PyTorch 社区的核心组件,TorchNPU 是昇腾专为 PyTorch 打造的深度学习适配插件,使 PyTorch 框架能够直接调用昇腾 NPU,为开发者提供昇腾 AI 处理器的超强算力。
Python
854
1.34 K
docsdocs
暂无描述
Markdown
891
5.78 K
jiuwenswarmjiuwenswarm
JiuwenSwarm 是一款基于openJiuwen开发的智能AI Agent,它能够将大语言模型的强大能力,通过你日常使用的各类通讯应用,直接延伸至你的指尖。
Python
3.53 K
1.01 K
ops-mathops-math
本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
C++
1.34 K
1.45 K
cann-learning-hubcann-learning-hub
CANN 学习中心仓,支持在线互动运行、边学边练,提供教程、示例与优化方案,一站式助力昇腾开发者快速上手。
Jupyter Notebook
987
504
AscendNPU-IRAscendNPU-IR
AscendNPU-IR是基于MLIR(Multi-Level Intermediate Representation)构建的,面向昇腾亲和算子编译时使用的中间表示,提供昇腾完备表达能力,通过编译优化提升昇腾AI处理器计算效率,支持通过生态框架使能昇腾AI处理器与深度调优
C++
540
384