这条连接是朝外打的,这正是关键。
家里和办公室的机器基本都没有公网地址,我们也不想让你去弄一个。换个做法:你的机器主动连到我们这边,然后一直挂着不断开,就像聊天软件那样一直连着。
- 01买家发来一个普通的请求,用的就是他手上工具本来就在用的那种格式。
- 02网关把请求整理一下,再挑一个装着他要的那个模型的节点。
- 03你的 Edge 程序在自己打开的那条连接上接到活,然后确认这属于它被允许转发的那几种请求。
- 04本机的 Ollama在你的 GPU 上跑。答案顺着来时的路一点点回去。
指向你机器的那根箭头,其实是你的机器自己打出去的连接。我们伸不进你的网络——节点只要能访问到 api.everyapi.ai 就够了,跟打开任何一个网站一样。
你的 GPU 产出一点就发出去一点,所以买家是看着答案慢慢冒出来,不用干等一整段写完。要是连接中途断了,这笔请求算失败,不会当成跑完了收钱。
同一段对话里的后续消息还会回到同一个节点,这样更快,因为你的机器上还留着前面聊过的内容。有节点上线或者下线时,受影响的只有原本在那些节点上的对话。
你想挂几台机器到同一条渠道上都行。这条渠道对外提供的,是这几台机器合起来装了的所有模型,所以它们不必都装一样的。
你的节点会隔一会儿就报一次到。要是不报了——停电、重启、断网——我们会发现,把它标成离线,在它回来之前不再给它派活。谁都不用动手。
一条命令,在装着 GPU 的那台机器上跑完。
先在控制台加节点,拿到一次性的安装码,然后在机器上跑安装脚本。它会弄清楚你有什么硬件,照着配好,再把它启动起来。
建一个节点
审核通过的卖家在控制台加一个边缘节点,会拿到一个安装码,只显示这一次。我们那边只留一份打乱过的,等你的机器连上来之后,连这份也删掉。
跑安装脚本
它会看你的 GPU 有多少显存、硬盘还剩多少,挑一个装得下还很宽裕的模型,下载下来,然后真的拿一个问题去试跑一遍,跑通了才告诉你装好了。想自己选模型就加上 --model。
看着它上线
你的机器自己生成一把私钥,证明自己是自己,再把它有哪些模型报给我们。在有机器带着至少一个能卖的模型连上来之前,你在市场上的渠道一直是关着的。
# 这几个值在控制台创建节点时会给你curl -fsSL https://dl.everyapi.ai/edge/install.sh | bash -s -- \ --node-id 42 --token edgert_... # 不让它自己挑,改成你指定模型curl -fsSL https://dl.everyapi.ai/edge/install.sh | bash -s -- \ --node-id 42 --token edgert_... --model qwen2.5:7b安装脚本做了几件事,免得你第一次就卡住:它不会在你放代码的文件夹里运行,这样安装码就不会落到一个你可能顺手分享出去的地方;它会一直留着这个码,直到我们真的确认连上了,所以第一次没成还能再试,不会直接留下一个废节点;另外,过后再跑一遍也没问题。
三条 GPU 路线,自动认出来
安装脚本会自己看你这台机器上有什么——先看 NVIDIA,再看 AMD,然后是 Apple Silicon,最后是 CPU——然后照着配好。要是缺了什么,它会告诉你然后停下来;它不会不问一声就往你机器上装东西。
最常见的一种配置,也是默认。你得先装好比较新的显卡驱动,还有 NVIDIA 的容器工具包。
AMD 显卡可以用,前提是你先在这台机器上把 AMD 的 ROCm 装好。
Mac 上的显卡芯片没法给 Docker 用,所以在 Mac 上模型是直接跑在机器上的,只有 Edge 程序跑在容器里。
能跑起来,用 CPU 代替显卡出结果。拿来试试没问题,也确实有一类活它是真能干(把文字变成方便搜索的数字),但要卖聊天就慢得离谱,不值得。
你需要装好 Docker,还有比较新的 Docker Compose——安装脚本和 CLI 都只是检查一下,缺了就给你一个链接,不会自己动手装。Edge 程序能跑在 Linux 和 macOS 上。
装完之后,什么事都只要一条命令
一个节点跑起来之后要做的事,一条命令全包了,控制台上看到的也是同一套。每个节点在机器上各占自己的一块地方,所以你可以同时跑好几个。
everyapi edge status把你机器上的情况和我们这边看到的并排放着——在线还是离线、上次报到是什么时候、装了哪些模型。
everyapi edge models给一个节点加模型、删模型、列出装了哪些。不用开着终端也能跑,所以你可以写进脚本里。
everyapi edge pause新活不再进来,而且重启之后还是这样——不会有什么东西悄悄把它放回去干活。如果你有好几台机器,暂停一台,别的照常跑。
everyapi edge logs -f实时看你的节点在干什么。要是你不想开终端,控制台上每个节点也能看到同样的东西。
everyapi edge update拉最新的版本,然后重启。没有任何东西会自己更新——你机器上的软件,只有你跑了这条命令才会变。
everyapi edge remove把所有东西停掉,清掉它建过的文件,再把节点删了——除非你想把它继续留在列表里。这些事它都会先问你一声。
所以我们把话说清楚:它能做什么,不能做什么。
这些都不是让你光凭信任接受的承诺——每一条都是这个软件本身就这么写的,代码你自己就能读。
第一次运行时,Edge 程序会生成一把私钥,并且锁住它,只有你能读。要是这个文件哪天变成别人也能读了,程序会直接拒绝启动,而不是接着往下跑。我们看得到的,永远只有公开的那一半。
Edge 程序只会转发模型回答问题用得上的那几种请求,而且这条限制是写死在程序里的,不是我们能改的。就算我们这边被人攻破了,也没办法让你的机器去干别的事。
程序里根本没地方放——它记的那条记录里,就没有留给问题和答案的位置。它写下的是用了哪个模型、花了多久、处理了多少内容,还有一个没有含义的客户编号。没有问题,没有答案,没有密钥,没有邮箱。
它只显示一次,我们只留一份打乱过的,等你的机器第一次连上之后,连这份也删掉——所以谁都没法再拿它用第二次。之后每次都是你的机器用自己那把钥匙来表明身份。
只有你去要,新版本才会下来。另外,如果你在控制台把一个节点删了,程序会收到通知,让它彻底停下——它会带着一个明确的原因停下来,而不是一直没完没了地重试。
只有一笔请求真的付过钱了,才会算到你头上,而且每笔只算一次。要是那会儿你的机器正好离线,下次连上来时会把落下的补回去。收益进的是你的卖家余额,转到主余额是另外一步。
这个程序是开源的,用的是 Apache 2.0,全部代码都在 github.com/everyapi-ai/everyapi-edge——上面讲的每一条都在里面。
不能。边缘节点是市场的一部分,而市场的卖家权限要经过审核。你得先提交申请,我们会看一遍——看的是账号开了多久、平时怎么用的这类事,这些条件运营方还能调。通过之后你才能添加节点。