<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Gradio on Chang Luo</title>
		<link>https://www.luochang.ink/tags/gradio/</link>
		<description>Recent content in Gradio on Chang Luo</description>
		<generator>Hugo</generator>
		<language>zh-CN</language>
		
		
		
		
			<lastBuildDate>Sun, 18 Jan 2026 00:00:00 +0000</lastBuildDate>
		
			<atom:link href="https://www.luochang.ink/tags/gradio/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>在树莓派上搭建家用 Agent 服务</title>
				<link>https://www.luochang.ink/posts/rpi_agent_server/</link>
				<pubDate>Sun, 18 Jan 2026 00:00:00 +0000</pubDate>
				<guid>https://www.luochang.ink/posts/rpi_agent_server/</guid>
				<description>&lt;blockquote&gt;&#xA;&lt;p&gt;使用树莓派搭建 &lt;a href=&#34;https://github.com/luochang212/dive-into-langgraph/tree/main/app&#34;&gt;dive-into-langgraph/app&lt;/a&gt; 服务，在家庭局域网内部使用。&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;一键部署脚本：&lt;a href=&#34;https://github.com/luochang212/agent-server&#34;&gt;agent-server&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;一制作-tf-卡&#34;&gt;一、制作 TF 卡&lt;/h3&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; 你可以参考我的这篇博客《&lt;a href=&#34;https://www.luochang.ink/posts/raspberry_pi_5/&#34;&gt;树莓派 5 装机指南&lt;/a&gt;》，它写得更详细一些。但部分信息已经过时，请注意甄别。&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;h4 id=&#34;1下载&#34;&gt;1）下载&lt;/h4&gt;&#xA;&lt;p&gt;你需要下载两样东西：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.raspberrypi.com/software/&#34;&gt;Raspberry Pi Imager&lt;/a&gt;：将镜像写入 TF 卡的工具&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://ubuntu.com/download/raspberry-pi&#34;&gt;Ubuntu 24.04.3 LTS&lt;/a&gt;：树莓派的 Ubuntu 镜像&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Ubuntu 镜像有两种版本：桌面版、服务器版，我们下载服务器版。下载的时候可以检查一下，安装包的文件名应该是这个 &lt;code&gt;ubuntu-24.04.3-preinstalled-server-arm64+raspi.img.xz&lt;/code&gt;&lt;/p&gt;&#xA;&lt;h4 id=&#34;2将镜像写入-tf-卡&#34;&gt;2）将镜像写入 TF 卡&lt;/h4&gt;&#xA;&lt;p&gt;根据 &lt;strong&gt;Raspberry Pi Imager&lt;/strong&gt; 的指引，完成镜像烧录的过程就好了。并没有什么难的。唯一需要注意的是，由于我们已经下载了 Ubuntu 镜像，所以这里要选「使用自定义镜像」。&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://www.luochang.ink/img/Raspberry-Pi-Imager-2025.png&#34; alt=&#34;image&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;二首次启动-ubuntu&#34;&gt;二、首次启动 Ubuntu&lt;/h3&gt;&#xA;&lt;p&gt;烧录完成后，按以下步骤操作：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;先断电，然后将 TF 卡插入板子&lt;/li&gt;&#xA;&lt;li&gt;连接外接显示屏、键盘、网线&lt;/li&gt;&#xA;&lt;li&gt;最后插入电源&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;一般来讲，插电即可点亮。这时回车一下，即可输入账号密码，初始账密是：&lt;/p&gt;&#xA;&lt;table&gt;&#xA;&#x9;&lt;thead&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&lt;/thead&gt;&#xA;&#x9;&lt;tbody&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;账号&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;ubuntu&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;密码&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;ubuntu&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;p&gt;输完账密，它会接着让你设置新密码。这里流程设计得有点人机，需要注意看提示，不然容易卡关。温馨提示：你输入 &lt;code&gt;ubuntu&lt;/code&gt; 的次数比你想象中更多。&lt;/p&gt;&#xA;&lt;h3 id=&#34;三环境配置&#34;&gt;三、环境配置&lt;/h3&gt;&#xA;&lt;h4 id=&#34;1更新软件包&#34;&gt;1）更新软件包&lt;/h4&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f7f7f7;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#57606a&#34;&gt;# 更新软件源的索引列表&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo apt update&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#57606a&#34;&gt;# 根据更新后的索引，升级所有可更新的软件包&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo apt upgrade -y&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id=&#34;2安装-pipx-和-uv&#34;&gt;2）安装 pipx 和 uv&lt;/h4&gt;&#xA;&lt;p&gt;先安装 &lt;code&gt;pipx&lt;/code&gt;，再用它安装 &lt;code&gt;uv&lt;/code&gt;：&lt;/p&gt;</description>
			</item>
			<item>
				<title>Agent 实战：智能路由、任务拆解和链路工程</title>
				<link>https://www.luochang.ink/posts/agent_project/</link>
				<pubDate>Sun, 15 Jun 2025 00:00:00 +0000</pubDate>
				<guid>https://www.luochang.ink/posts/agent_project/</guid>
				<description>&lt;blockquote&gt;&#xA;&lt;p&gt;大模型天生具有幻觉，为了工程的准确性，我们奉行“非必要不Agent”原则。我们是专业的，除非忍不住，否则绝不用 Agent。&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;特别声明：本文使用 &lt;a href=&#34;https://github.com/QwenLM/Qwen-Agent&#34;&gt;Qwen Agent&lt;/a&gt; 实现。&lt;/p&gt;&#xA;&lt;p&gt;本文包含以下两个项目：&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;1）智能路由&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;概述&lt;/strong&gt;：如果一个业务可以分很多种情况处理。针对每种情况，我们开发一个工具函数 (Function Calling)，来处理此种情况内部的复杂性。此时，Agent 充当智能路由的角色，将对应的情况路由到对应的工具函数。工具函数内部带有描述信息，Agent 可以访问这些信息，以此判断在何种情况下，调用这个工具函数。&lt;/p&gt;&#xA;&lt;p&gt;具体来讲，本项目开发了一个 &lt;strong&gt;客诉核查 Agent&lt;/strong&gt;。针对 物流逾期 和 假货 两种客诉，分别开发了对应的工具函数。&lt;strong&gt;Agent 通过接入工具函数，获得了核查以上两种客诉真实性的能力&lt;/strong&gt;。当我们将客诉信息传递给 Agent，它会输出针对该客诉的 &lt;strong&gt;核查结论&lt;/strong&gt; 和 &lt;strong&gt;相应证据&lt;/strong&gt;。&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;2）数据库查询优化&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;概述&lt;/strong&gt;：数据库查询是一个非常通用的需求，其中 &lt;strong&gt;NL2SQL&lt;/strong&gt; 是难点。为了提升 NL2SQL 的准确性，很容易想到把数据表的 Schema、样例数据、个别字段的枚举值作为上下文 (context) 注入到原始 Prompt 中。本项目实现了这一点。&lt;/p&gt;&#xA;&lt;p&gt;具体来说，本项目做了以下工作：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;启用 Qwen Agent 的 &lt;strong&gt;ReActChat&lt;/strong&gt; 模式，以提升多步骤情况下的性能&lt;/li&gt;&#xA;&lt;li&gt;开发定制的 &lt;strong&gt;Workflow&lt;/strong&gt;，用于将 Schema 等上下文信息注入原始 Prompt 中&lt;/li&gt;&#xA;&lt;li&gt;开发可流式对话的 &lt;strong&gt;Gradio WebUI&lt;/strong&gt;，以方便调试 Agent 和 Workflow&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;✨ 所有代码见 GitHub 仓库：&lt;a href=&#34;https://github.com/luochang212/agent-project&#34;&gt;luochang212/agent-project&lt;/a&gt;&lt;/p&gt;&#xA;&lt;!-- - 智能路由代码见：[intelligent_routing](https://github.com/luochang212/agent-project/tree/main/intelligent_routing)&#xA;- 数据库查询优化代码见：&#xA;    - Agent: [gradio_postgres_agent.py](https://github.com/luochang212/agent-project/blob/main/gradio_postgres_agent.py)&#xA;    - Workflow: [gradio_postgres_workflow.py](https://github.com/luochang212/agent-project/blob/main/gradio_postgres_workflow.py) --&gt;&#xA;&lt;h2 id=&#34;一引言&#34;&gt;一、引言&lt;/h2&gt;&#xA;&lt;h3 id=&#34;1-尚未到来的涌现&#34;&gt;1. 尚未到来的涌现&lt;/h3&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;We always overestimate the change that will occur in the next two years and underestimate the change that will occur in the next ten. &amp;ndash; Bill Gates&lt;/p&gt;</description>
			</item>
	</channel>
</rss>
