
如何用 Memori 的 TiDB Zero 自动开通一次性开发数据库【免费下载链接】MemoriMemori is agent-native memory infrastructure. A LLM-agnostic layer that turns agent execution and conversation into structured, persistent state for production systems. Built for enterprise, Memori works with the data infrastructure you already run, no rip-and-replace, and deploys across managed cloud, single-tenant cloud, VPC, and on-premises.项目地址: https://gitcode.com/GitHub_Trending/me/Memori如果你不想为了跑一段 Memori 代码先申请一个正式的数据库账号、创建数据库、配置网络Memori 的 BYODB provisioning 功能可以直接替你开通一个 TiDB Cloud Zero 一次性实例它向 TiDB Zero 端点发一个请求拿到带凭据的连接字符串DSN用 PyMySQL 建立连接并自动建好 Memori 所需的存储结构。适合开发、测试等用完即弃的场景生产环境仍应使用你自己的 TiDB / TiDB Cloud 实例。前提条件已安装 Python能通过pip安装包。安装带tidb-zero额外依赖的 Memori。该 extra 实际引入certifi2024.0.0和pymysql1.1.2见 pyproject.tomlpip install memori[tidb-zero]默认端点为https://zero.tidbapi.com/v1beta1/instances预览端点。如果 TiDB 变更了端点可通过环境变量MEMORI_TIDB_ZERO_URL覆盖如果要求 bearer 鉴权则设置TIDB_ZERO_API_KEYMemori 会将其放入Authorization: Bearer key请求头。两个环境变量都不设置时直接匿名 POST 请求默认端点。以上配置说明来自 docs/memori-byodb/databases/tidb.mdx请求行为可在 tidb_zero.py 中核对。方式一用 CLI 开通python -m memori provision tidb-zero等价的显式写法python -m memori provision --provider tidb-zeroCLI 内部固定以buildTrue调用 provisioning见 provisioning/_manager.py即开通成功后会立即执行mem.config.storage.build()建好存储结构然后打印结果。开通成功时你会看到类似这样的提示DSN 中的密码会被替换为****这是 redact_dsn 的脱敏行为Provisioned database is ready. Provider: tidb-zero Family: mysql DSN: mysql://user:****host:4000/memori Claim URL: https://... Expires at: ...Claim URL和Expires at两项只在 TiDB Zero 响应里携带claimInfo.claimUrl或expiresAt字段时才会出现见 tidb_zero.py 的parse_tidb_zero_response。这个实例是一次性的Expires at就是它的到期时间。方式二在 Python 中开通并直接使用不需要单独跑 CLI一行调用就能拿到一个已建好存储结构的Memori实例文档示例from memori import Memori mem Memori.provision(providertidb-zero, buildTrue)Memori.provision的完整签名见 memori/init.pyMemori.provision( *, provider: str, # tidb-zero build: bool True, # True 时自动执行 storage.build() cache: bool True, # False 时跳过本地缓存每次都新开通 tag: str memori, # 缓存键的一部分 cache_key: str | None None, **kwargs, # 可透传给 provider如 api_key、timeout )provider参数目前只支持tidb-zeroMYSQL_PROVIDERS {tidb-zero}且支持的结果族只有mysql见 provisioning/init.py。开通成功后DSN 解析出的连接参数会自动补上 TLS 设置ssl使用 certifi CAcheck_hostnameTrue、verify_moderequired见 mysql_tls_connect_args如果 DSN 中没有指定数据库连接时会自动执行CREATE DATABASE IF NOT EXISTS memori再USE该库。你不需要自己再写连接代码。结果验证CLI 路径如上文所示输出以Provisioned database is ready.开头并给出脱敏 DSN即表示开通和存储构建都已完成。Python 路径Memori.provision(..., buildTrue)返回的实例已可用mem.config.provision_result保存着本次结果provider、family、dsn、claim_url、expires_at 等。想验证存储真的可读写可参考 tidb.mdx 的 Complete Example 套路注册 LLM、发起一次对话、然后mem.augmentation.wait()并mem.recall(...)拿到抽取出的事实该示例使用 OpenAI 客户端需要OPENAI_API_KEY。缓存行为与密钥安全重要开通结果会缓存在$MEMORI_HOME/.memori/provisioning.json没有设置MEMORI_HOME时是~/.memori/provisioning.json。该文件包含完整 DSN含凭据Memori 会以 owner-only 权限0o600写它但文档明确要求把它当作 secrets 文件对待数据库不再需要时轮换或删除它。缓存命中规则缓存键为tidb-zero:{tag}默认 tag 是memori或通过cache_key参数显式指定。命中且未过期就直接复用不会再次请求 TiDB Zero结果带有expires_at且已过期时缓存项会被移除并重新开通见 provisioning/_cache.py。如果同一台机器上切换 TiDB Zero 端点、账号或项目传一个不同的tag/cache_key或设置cacheFalse否则 Memori 会复用上一个上下文缓存下来的开发库例如mem Memori.provision(providertidb-zero, tagmy-project-dev) # 或强制每次都新开一个 mem Memori.provision(providertidb-zero, cacheFalse)已知限制仅tidb-zero一个 provider当前注册表里 MySQL 族 provider 只有tidb-zero其他 provider 名称会报错非 MySQL 族的结果会抛UnsupportedProvisionedDatabaseFamilyError见 provisioning/init.py。必须有 PyMySQL对tidb-zeroMemori 会先检查pymysql可导入否则抛MissingPyMySQLError不会继续走开通流程。一次性定位TiDB Zero 实例是面向开发的一次性资源响应自带expiresAt到期时间。到期后缓存项自动失效但缓存文件里的旧凭据仍建议你手动删除。开通请求超时provider 默认timeout30秒见 tidb_zero.pyHTTP 错误会原样抛出response.raise_for_status()。如果你的目标已经是一次性开发库到这里就完成了mem实例可直接用于后续的mem.augmentation与mem.recall。如果之后要换成自建的 TiDB本地或 TiDB Cloud改走同一套 MySQL BYODB 路径即可参考 tidb.mdx 的 Quick Start 与 Connection Strings 部分。【免费下载链接】MemoriMemori is agent-native memory infrastructure. A LLM-agnostic layer that turns agent execution and conversation into structured, persistent state for production systems. Built for enterprise, Memori works with the data infrastructure you already run, no rip-and-replace, and deploys across managed cloud, single-tenant cloud, VPC, and on-premises.项目地址: https://gitcode.com/GitHub_Trending/me/Memori创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考