<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>原创 on 永恒的四月博客</title>
        <link>https://9eb22f8f.myblog-ai0.pages.dev/tags/%E5%8E%9F%E5%88%9B/</link>
        <description>Recent content in 原创 on 永恒的四月博客</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>zh-cn</language>
        <lastBuildDate>Wed, 25 Mar 2026 13:51:45 +0800</lastBuildDate><atom:link href="https://9eb22f8f.myblog-ai0.pages.dev/tags/%E5%8E%9F%E5%88%9B/index.xml" rel="self" type="application/rss+xml" /><item>
            <title>谷歌 Vertex AI API 调用与 429 问题</title>
            <link>https://9eb22f8f.myblog-ai0.pages.dev/p/260325_1/</link>
            <pubDate>Wed, 25 Mar 2026 13:51:45 +0800</pubDate>
            <guid>https://9eb22f8f.myblog-ai0.pages.dev/p/260325_1/</guid>
            <description>&lt;p&gt;如果想调用市面上比较前沿的多模态模型制作一些东西，使用 GCP 中的 &lt;a class=&#34;link&#34; href=&#34;https://console.cloud.google.com/vertex-ai/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Vertex AI&lt;/a&gt; 是一个不错的选择。它提供谷歌最新的 Gemini 模型调用权限，一站式支持文本、图片、视频、语音模型。&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;i1&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;78px&#34; data-flex-grow=&#34;32&#34; height=&#34;714&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://9eb22f8f.myblog-ai0.pages.dev/p/260325_1/i1.png&#34; width=&#34;233&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;如果是新注册的 GCP 账号，一般还可以配合 Free Trial 的 300 美元赠金来用。&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;i2&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;836px&#34; data-flex-grow=&#34;348&#34; height=&#34;402&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://9eb22f8f.myblog-ai0.pages.dev/p/260325_1/i2.png&#34; srcset=&#34;https://9eb22f8f.myblog-ai0.pages.dev/p/260325_1/i2_hu_fc22399badc8fc09.png 800w, https://9eb22f8f.myblog-ai0.pages.dev/p/260325_1/i2.png 1401w&#34; width=&#34;1401&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;大体步骤是：创建一个 Google 云服务账号 -&amp;gt; 在控制台启用 Vertex AI 的 API 功能 -&amp;gt; &lt;a class=&#34;link&#34; href=&#34;https://console.cloud.google.com/iam-admin/serviceaccounts&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;开通一个服务账号&lt;/a&gt; 并授予 &lt;code&gt;Vertex AI User&lt;/code&gt; 角色。然后可以通过 ADC 调用；如果你是服务账号方式，也可以下载对应的 JSON 文件来配：&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://googleapis.github.io/python-genai&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://googleapis.github.io/python-genai&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;在使用过程中会发现有时候经常返回 429 报错：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;nt&#34;&gt;&amp;#34;error&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;nt&#34;&gt;&amp;#34;code&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;429&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;nt&#34;&gt;&amp;#34;message&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;Resource exhausted. Please try again later. Please refer to https://cloud.google.com/vertex-ai/generative-ai/docs/error-code-429 for more details.&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;nt&#34;&gt;&amp;#34;status&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;RESOURCE_EXHAUSTED&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;一些比较新的模型，我自己用下来会更容易碰到这种情况。不过这更多是个人观察，不算官方结论。&lt;/p&gt;&#xA;&lt;p&gt;官方文档里提到，部分 Gemini 模型会使用 &lt;strong&gt;DSQ（Dynamic Shared Quota，动态共享配额）&lt;/strong&gt;。DSQ 没有固定的预定义 quota，请求会在&lt;strong&gt;共享容量池里动态分配&lt;/strong&gt;。&#xA;所以 429 不一定表示你打到了一个固定 quota，也可能只是某个时段共享资源比较紧张。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://docs.cloud.google.com/vertex-ai/generative-ai/docs/quotas&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://docs.cloud.google.com/vertex-ai/generative-ai/docs/quotas&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;官方建议是：&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;ol&gt;&#xA;&lt;li&gt;用 global endpoint；&lt;/li&gt;&#xA;&lt;li&gt;做 truncated exponential backoff；&lt;/li&gt;&#xA;&lt;li&gt;平滑流量，避免秒级尖峰；&lt;/li&gt;&#xA;&lt;li&gt;需要更稳定容量时，改用 Provisioned Throughput（加钱买预订配额，这非常贵）&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;这非常难受。不过根据我的观察，在北京时间早上 9-12 点时会好很多&lt;/p&gt;&#xA;&lt;p&gt;如果真的频繁 429，那么除了做重试和错峰，把对模型要求不高的业务先指向比较老、比较便宜或者更稳定的模型，也会缓解一些。&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>我的第一篇博文</title>
            <link>https://9eb22f8f.myblog-ai0.pages.dev/p/260317_1/</link>
            <pubDate>Tue, 17 Mar 2026 12:01:08 +0800</pubDate>
            <guid>https://9eb22f8f.myblog-ai0.pages.dev/p/260317_1/</guid>
            <description>&lt;h1 id=&#34;我为什么还在写博客&#34;&gt;我为什么还在写博客？&#xA;&lt;/h1&gt;&lt;p&gt;似乎是一种情怀？在我学习计算机技术的时期，那时候还没有人工智能，我查找资料的能力仅限于使用百度搜索。结果自然是被导航到许多沾满牛皮癣悬浮窗的文章页面。我在这些牛皮癣里找到一些高质量的干货，想看看作者的其他文章，就会从转载来源链接到作者的个人博客。&lt;/p&gt;&#xA;&lt;p&gt;我会惊叹于这些网站干净、整洁、易读的界面。包括站点中作者的生活、心情分享，都让我感觉到这背后是一个个鲜活的同路人，枯燥的学习也有了一种并不孤单的感觉。即使我当时还没有“博客”“Markdown”这些概念，开源精神的种子已经在我心里种下。&lt;/p&gt;&#xA;&lt;p&gt;即使学的是计算机技术，这些年我每天也都在网上冲浪。但十几年来，我在互联网各个平台的评论区里其实很少发言，更多时候只是在看，旁观人们围绕某个观点讨论、争执、拉扯、对骂。&lt;/p&gt;&#xA;&lt;p&gt;我不太知道该怎么描述这种感觉，我只是觉得很混乱。再加上这几年社会戾气的上升、平台言论监管越来越严格，以及网络水军行业的兴起，我会觉得这些评论区已经越来越没有什么真正有价值的内容了。或许也是因为我没有找到真正高质量的社区。&lt;/p&gt;&#xA;&lt;p&gt;我喜欢 GitHub Issues 里的讨论氛围。人们会就事论事，正式而有条理地围绕一个项目讨论，并且真的推动它往前走。我想，这才是我想要的。&lt;/p&gt;&#xA;&lt;h1 id=&#34;还需要靠博客分享和获取知识吗&#34;&gt;还需要靠博客分享和获取知识吗？&#xA;&lt;/h1&gt;&lt;p&gt;我认为，当前如果从学习者的角度看，从个人博客页面获取知识的效率，远不如与人工智能直接讨论来得高。除非是某个行业前沿里一些大佬的分享，就像 AI 对 &lt;a class=&#34;link&#34; href=&#34;https://stackoverflow.com&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;code&gt;Stack Overflow&lt;/code&gt;&lt;/a&gt; 访问量的冲击和改变一样。&lt;/p&gt;&#xA;&lt;p&gt;个人博客更多承载的，可能是人们对某些事情的观点，而不只是技术知识；也包括对特定场景的经验分享，例如对新工具、新软件的看法。&lt;/p&gt;&#xA;&lt;h1 id=&#34;我是如何搭建这个博客的&#34;&gt;我是如何搭建这个博客的？&#xA;&lt;/h1&gt;&lt;p&gt;整个过程都是借助 AI 完成的。当我想起我那个闲置的域名，并且想搭建一个博客的时候，我只是把我的想法打进输入框。我有一个 Codex，我问它我想要搭建一个静态博客可以用什么工具，于是它向我推荐了 Hugo，并帮我完成部署。&lt;/p&gt;&#xA;&lt;p&gt;在选择和配置主题的过程中，所有的配置文件也都是使用 Codex 帮我改写的。我只是说出了我想要的效果而已。我觉得 Codex 是非常好用的工具，在 Linux 环境下办公，可以在任何地方启动 Codex，执行命令也方便，几乎等同于我的系统助手。&lt;/p&gt;&#xA;&lt;h1 id=&#34;我会分享什么&#34;&gt;我会分享什么？&#xA;&lt;/h1&gt;&lt;p&gt;我个人的技术知识肯定没有 AI 丰富，所以在技术分享层面，我可能不会有太多见解。我更多会分享一些踩过的坑、工具使用技巧等等，还有一些日常、散文。&lt;/p&gt;&#xA;&lt;p&gt;我的文笔不是很好，个人观点也不是很成熟。&lt;/p&gt;&#xA;&lt;p&gt;这些文章可能会使用 AI 调整排版，纠正语病和错别字，确保在符合我观点的情况下，只做最小的修改。&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>夜渡小记</title>
            <link>https://9eb22f8f.myblog-ai0.pages.dev/p/moonlit-ferry/</link>
            <pubDate>Sat, 14 Mar 2026 17:35:00 +0800</pubDate>
            <guid>https://9eb22f8f.myblog-ai0.pages.dev/p/moonlit-ferry/</guid>
            <description>&lt;p&gt;江边的渡口很小，木牌上的字被风雨磨得发白，只剩一个模糊的“渡”字还算清楚。天刚黑，河面像一张慢慢铺开的铁灰色绸布，偶尔被船桨划开，裂出几道短暂的银光。&lt;/p&gt;&#xA;&lt;p&gt;船夫没有多话，只在我上船时点了点头，替我扶了一把晃动的船舷。船上除我之外，还有一个背竹篓的老人，一个抱着油纸包的孩子。大家都沉默着，像是怕惊动了河心刚升起的那轮月亮。&lt;/p&gt;&#xA;&lt;p&gt;船离岸后，四周的声音忽然变得很远。岸上的犬吠、茶摊的招呼、晚归人的脚步，都隔着水雾，轻得像别处传来的旧梦。只有船底触水的声音一下一下，稳稳地托着夜色往前走。&lt;/p&gt;&#xA;&lt;p&gt;老人先开了口，说今年的春天来得慢，田里的水还冷。孩子却只顾看月亮，忽然问船夫，月亮是不是也要过河。船夫笑了笑，说它不过河，它只是一直跟着有心事的人。&lt;/p&gt;&#xA;&lt;p&gt;这话一出，大家都安静了片刻。风从河面吹过来，带着湿润的草木气息。我低头看水，月影正碎在船边，又在下一瞬重新拼好，像许多说不清的念头，散了又聚，聚了又散。&lt;/p&gt;&#xA;&lt;p&gt;靠岸时，远处村口亮着两盏灯，暖黄得很。老人背起竹篓，孩子抱紧油纸包，各自走向不同的小路。船夫把缆绳往木桩上一绕，仍旧什么都没问，只说了一句：夜里风大，路上慢些。&lt;/p&gt;&#xA;&lt;p&gt;我回头看那条河，月光还落在水中央，平静得像从未有人经过。可我知道，刚才那一趟短短的夜渡，已经把许多白天说不出口的话，都悄悄带到了对岸。&lt;/p&gt;&#xA;</description>
        </item></channel>
</rss>
