[特殊字符] Docker + LMArena2API 部署全流程:从环境准备到接口调用,一步到位

前言

在 AI 浪潮席卷的当下,LMArena.ai 平台凭借丰富的大语言模型资源、多场景榜单对比优势,成为很多开发者测试、调用前沿 AI 模型的首选平台。而 LMArena2API 作为一款强大的开源工具,充当了 OpenAI 兼容接口与 LMArena.ai 平台之间的"桥梁",能让我们通过任意兼容 OpenAI API 的应用(如 AI 聊天客户端、编程插件),无缝调用 LMArena.ai 上的海量模型,还支持流式对话、文生图、Cookie 池配置等实用功能。

但实际部署 LMArena2API 时,不少开发者会陷入"环境配置混乱、依赖冲突、Cloudflare 验证绕坑难"的困境------本地环境版本不兼容、依赖包安装失败、部署后无法正常调用接口,甚至花费大量时间排查问题,最终半途而废。而 Docker作为容器化技术的代表,恰好能解决这些痛点:它将 LMArena2API 及其所需的运行环境、依赖包全部打包成标准化镜像,实现"一次构建、到处运行",彻底告别"在我电脑上能跑,部署就报错"的尴尬。

基于此,我整理了这份详细的 Docker 部署 LMArena2API 指南,从核心准备、镜像拉取、容器配置,到接口测试、常见问题排查,每一步都搭配清晰说明和实操命令,同时重点标注部署中的关键注意事项(如 Cloudflare 验证适配、Cookie 池配置技巧),无论是 AI 新手还是有一定经验的开发者,都能跟着教程快速完成部署,轻松解锁 LMArena.ai 的全部模型能力。

下载地址:

好像进官网要魔法?我不用的话好像进不去,你们尝试一下看看

进入口之后:

这访问的 arena.ai 是 LMSYS Org 官方的 Chatbot Arena 在线平台,它主要用于模型的公开评测和排名,并不提供一键部署或下载。

这个网站是 Arena.ai,它是一个专注于AI大模型对比评测的在线平台。

这个平台的核心玩法是"盲测":你可以在同一个界面,向两个匿名的顶尖AI模型(比如GPT-4、Claude、Gemini等)发送同一个问题,然后对比它们的回复,选出你认为更好的一个。你的每一次投票,都会帮助平台生成一个更贴近真实用户体验的AI模型排行榜。

为什么它值得关注?

  1. 免费体验顶级模型

    你无需为GPT-4、Claude等付费模型单独订阅,在Arena.ai上就能免费体验它们的最新能力。

  2. 找到最适合你的AI

    不同模型擅长的领域不同,有的强于写代码,有的强于创意写作。通过实际对比,你可以找到最符合你需求的AI助手。

  3. 了解AI行业动态

    平台的排行榜会实时更新,是观察哪个模型最近变强了、哪家发布了新模型的绝佳窗口。

如何使用?

使用非常简单,无需安装,打开网页即可:

  1. 在中间的输入框里输入你的问题或指令。
  2. 系统会同时让两个匿名模型进行回复。
  3. 你阅读后,选择你认为更优的答案进行投票。

这个平台非常适合想深入了解和对比各大AI模型能力的用户。

🐳 使用 Docker 部署 LMArena2API

这是最简单、最推荐的部署方式,可以确保环境一致性,避免依赖冲突。社区中有一个名为 lmarena2api 的开源项目,它封装了 LMArena 的功能,让你可以在自己的服务器上搭建一个私有的访问接口。

第一步:准备环境

确保你的服务器或本地电脑已经安装了 Docker 和 Docker Compose。

在运行容器之前,你需要准备两个关键的 Cookie 值,这是项目能够正常工作的核心:

  • LA_COOKIE
  • CF_CLEARANCE

这两个值通常需要通过浏览器访问 LMArena 官网,在开发者工具的"网络"(Network)面板中,找到相关请求并复制其请求头(Request Headers)里的 Cookie 字段获得。

这是最关键的一步。你需要从 arena.ai 官网获取两个关键的 Cookie 值:LA_COOKIECF_CLEARANCE

  • 打开浏览器,登录 arena.ai
  • F12 打开开发者工具,切换到"网络 (Network)"标签。
  • 在网站上进行一次对话,然后在网络请求列表中找到一个 POST 请求(例如 v1/worker/get_conversation)。
  • 点击该请求,在"请求头 (Request Headers)"部分找到 Cookie 字段,从中复制出 LA_COOKIECF_CLEARANCE 的值。

具体操作步骤:

  • 清空当前列表:点击开发者工具左上角的 🚫(禁止)图标,清空当前的网络请求记录,这样更容易找到新产生的请求。
  • 触发一个对话请求 :回到网页,在输入框里随便输入一个词(比如"你好"),然后发送。

若你是第一次打开网站,大概率会出现这个界面

  • 安全验证已触发:页面中间的弹窗说明网站正在通过 reCAPTCHA 验证你的身份,这是获取有效 Cookie 的前置条件。
  • 目标请求已出现 :在开发者工具的列表中,你可以看到 create-evaluation 这个请求,这正是我们寻找的、用于创建对话的核心 API 请求。虽然它目前显示为 403(禁止访问),但这恰恰证明了请求已被服务器接收,只是因为你尚未通过验证,所以被拒绝了。

你需要做的就是完成这个安全验证,然后从 create-evaluation 请求中复制 Cookie。

  1. 完成安全验证:点击弹窗中的复选框,完成 reCAPTCHA 验证。如果验证成功,弹窗会消失,你就可以正常与 AI 对话了。
  2. 重新发送请求 :验证通过后,再次在输入框里发送一条消息(比如"你好"),这会触发一个新的 create-evaluation 请求。

获得新的 create-evaluation 请求有点难

虽然成功找到了 create-evaluation 这个核心请求,但服务器因为验证失败拒绝了它,这意味着当前获取到的 Cookie 是无效的。

这正是 LMSYS 网站最让人头疼的地方------它的反爬机制非常严格。

为什么会出现 403 错误

简单来说,LMSYS 的服务器在收到请求时,会检查 Cookie 里的两个关键字段:

  1. cf_clearance: 这是 Cloudflare 防火墙颁发的"通行证",证明你不是机器人。
  2. arena-auth-prod-v1: 这是你的登录凭证。

你的截图显示,你虽然拿到了 Cookie,但服务器认为你的验证(reCAPTCHA)超时了,所以直接拒绝了请求(403 Forbidden)。这通常是因为 Cookie 过期了,或者是在非浏览器环境下(比如直接用代码请求)被防火墙拦截了。

要解决这个问题,你需要模拟一个"真实用户"的行为来获取最新的 Cookie。

方法一:手动刷新获取(最简单)

  1. 清除缓存 :在浏览器中,按 Ctrl + Shift + Delete(Mac 是 Cmd + Shift + Delete),清除 Cookie 和缓存。
  2. 无痕模式打开:打开浏览器的"无痕/隐身模式",访问 LMSYS 网站。
  3. 完成验证 :此时网站会弹出 reCAPTCHA 验证框,务必手动完成验证
  4. 再次发送消息:验证通过后,在聊天框发送一条消息。
  5. 复制新 Cookie :此时再去找 create-evaluation 请求,复制它的 Cookie。这个 Cookie 应该是"新鲜"且有效的。

方法二:使用浏览器插件(推荐)

手动操作太麻烦?可以使用浏览器插件来自动管理 Cookie。

  1. 安装插件:在 Chrome 或 Edge 浏览器中安装 EditThisCookieCookie-Editor 插件。
  2. 导出 Cookie:在 LMSYS 网站页面,点击插件图标,选择"导出"或"复制为 JSON"。
  3. 在 Docker 中使用:将导出的 JSON 格式的 Cookie 字符串,作为环境变量传入 Docker 容器。

总结

你现在的状态是"找到了门,但钥匙不对"。只要按照上述方法,在无痕模式下重新完成一次验证,获取到最新的 Cookie,你的 Docker 部署就能成功了。

以下这个显示200ok的就是正确的cookie

  • 锁定目标请求 :发送后,网络面板会立刻出现新的请求。你需要寻找一个名称类似于 v1/chat/completionsv1/worker/get_conversationPOST 请求。
  • 复制 Cookie :点击这个 POST 请求,在右侧的"请求头"(Request Headers)部分,找到 Cookie 这一行。这一长串字符里就包含了我们需要的 LA_COOKIECF_CLEARANCE

第三步:运行 Docker 命令

打开终端,执行以下命令来拉取并运行镜像。请务必将命令中的占位符替换为你自己的实际值。

方案一:自己构建镜像(最稳妥,推荐)

如果你是从 GitHub 或其他地方下载了代码(比如 Dockerfile),你需要先"制造"一个镜像。

  1. 找到 Dockerfile

    在你的代码文件夹里,应该有一个叫 Dockerfile 的文件(没有后缀名)。

  2. 打开终端(命令行)

    进入这个 Dockerfile 所在的文件夹。

  3. 运行构建命令

    输入以下命令来创建镜像,并给它起个名字叫 lmarena-bot

    复制代码
    docker build -t lmarena-bot .

    (注意:命令最后有个点 .,代表当前目录)

    等待进度条跑完,显示 Successfully built ... 后,你就有了镜像名称 lmarena-bot

若没有下好源码

这里有两种最可能的情况,你可以看看你是哪一种:

情况一:你在用 Browser Use(浏览器自动化)

看你的截图标题栏有 Browser Use,这通常是一个 Python 库,用来让 AI 控制浏览器。如果你是想运行它的示例代码:

  1. 去 GitHub 下载代码

  2. 准备运行环境(这一步比 Docker 更直接):

    • 这个项目主要是 Python 写的,不一定非要用 Docker。
    • 你需要安装 Python。
    • 在解压的文件夹里打开终端,运行 pip install browser-use
  3. 写一个脚本

    新建一个 main.py,把 Cookie 放进去:

    复制代码
    import asyncio
    from browser_use import Browser, BrowserConfig
    
    async def main():
        # 把你的长串 Cookie 放在这里
        my_cookie = "user_country_code=JP; _ga=GA1.1..."
    
        browser = Browser(
            config=BrowserConfig(
                # 这里填入你的 Cookie
                cookies=my_cookie
            )
        )
        # ... 你的其他代码 ...
    
    asyncio.run(main())
    情况二:你在用 LMSYS Arena 的第三方 Docker 镜像

    如果你是在找那个能自动跑 Arena 对战的 Docker 机器人(Bot),你需要找到提供这个镜像的 GitHub 项目。

    最知名的开源项目是 lmsys-org/arena-hard-auto 或者类似的社区项目。

    操作步骤:

  4. 下载代码

  5. 构建镜像

    • 进入解压后的文件夹。

    • 你应该能看到一个 Dockerfile

    • 在文件夹地址栏输入 cmdpowershell 打开终端。

    • 运行构建命令(给它起名叫 arena-bot):

      复制代码
      docker build -t arena-bot .

总结

  1. 先找代码 :去 GitHub 搜你正在用的工具名(比如 Browser UseLMSYS Arena Bot)。

  2. 下载解压:把代码下到电脑上。

  3. 构建镜像 :在代码文件夹里用 docker build 命令生成镜像。

  4. 运行容 器 :构建完成后,就可以运行刚才生成的 arena-bot 镜像了:
    *

    复制代码
      docker run -d --name my-arena-run `
        -e FULL_COOKIE_STRING="你那一长串Cookie" `
        arena-bot

方案二:使用现成的公共镜像(如果有)

如果你是在网上找的教程,通常作者会提供一个现成的镜像地址。

  • 常见的镜像名格式 :通常是 用户名/仓库名:版本
  • 如果你找不到:你可以去 Docker Hub 搜一下你使用的这个项目的名字。

拿到镜像名后的完整步骤

假设你用了方案一 ,你的镜像名就是 lmarena-bot

  1. 复制你的 Cookie

    把你刚才截图里的那一长串 Cookie 准备好。

  2. 运行完整的 Docker 命令

    请把下面的 <你的长串Cookie> 替换成你刚才截图里的那一长串内容(记得保留外面的引号 "")。

    docker run --name lmarena2api -d --restart always
    -p 10088:10088
    -v $(pwd)/data:/app/lmarena2api/data
    -e LA_COOKIE=你的_LA_COOKIE值
    -e CF_CLEARANCE=你的_CF_CLEARANCE值
    -e API_SECRET="自定义的API密钥"
    -e TZ=Asia/Shanghai
    deanxv/lmarena2api

命令参数详解:

  • --name lmarena2api: 为容器指定一个名称。
  • -d: 让容器在后台运行。
  • --restart always: 设置容器随 Docker 服务自动启动。
  • -p 10088:10088: 将宿主机的 10088 端口映射到容器的 10088 端口,这是 API 服务的访问端口。
  • -v $(pwd)/data:/app/lmarena2api/data: 将当前目录下的 data 文件夹挂载到容器内,用于持久化保存数据。
  • -e LA_COOKIE-e CF_CLEARANCE: 设置前面获取到的环境变量。
  • -e API_SECRET: 设置一个自定义的密钥,用于保护你的 API 接口,防止被他人滥用。
  • -e TZ=Asia/Shanghai: 设置容器时区为上海时间。

第四步:处理镜像拉取问题

如果上述命令中的 deanxv/lmarena2api 镜像无法拉取(例如网络问题),可以尝试使用 GitHub 的容器镜像仓库。只需将镜像名称替换为:
ghcr.io/deanxv/lmarena2api

第五步:验证部署

部署成功后,你可以通过访问 http://你的服务器IP:10088 来测试服务是否正常运行。如果配置了 API_SECRET,调用 API 时需要在请求头中带上这个密钥。

这个项目还提供了强大的监控功能,例如实时统计 QPS、响应时间,并能与 Prometheus 和 Grafana 集成,非常适合用于生产环境的性能分析和告警。

相关推荐
IpdataCloud1 小时前
大数据处理方案:海量日志中的IP归属地如何高效分析?用IP离线库实现批量查询
网络·网络协议·tcp/ip
難釋懷1 小时前
Redis网络模型-异步IO
网络·数据库·redis
Lethehong1 小时前
Dify + EdgeOne:AI应用从Demo到上线的最后一公里
服务器·网络·人工智能·edgeone·dify
志栋智能1 小时前
超自动化巡检:如何应对海量增长的基础设施?
运维·自动化
代码讲故事1 小时前
Redis生产环境批量的key需要删除,如何优雅实现且不影响线上环境?有密码认证的如何实现批量删除?有哪些实现方法?
运维·redis·缓存·高并发·删除·批量·生产环境
号码认证服务1 小时前
如何让来电显示公司名代替陌生数字号码?企业号码认证开通指南
服务器·c语言·网络·经验分享·智能手机·云计算·php
只要微微辣1 小时前
Vue3 + TS 企业级 WebSocket 封装实战:高可用、自动重连、心跳检测与业务解耦方案
网络·websocket·网络协议
淼淼爱喝水2 小时前
DVWA 文件上传漏洞实验%00 截断实验与.htaccess 文件攻击实验
网络·安全·靶场
omenkk72 小时前
网络IO模型-从BIO到IO多路复用
服务器·网络