{"id":13457178,"url":"https://github.com/LLM-Red-Team/step-free-api","last_synced_at":"2025-03-24T12:30:59.707Z","repository":{"id":230457708,"uuid":"779431736","full_name":"LLM-Red-Team/step-free-api","owner":"LLM-Red-Team","description":"🚀 阶跃星辰跃问YueWen Step 多模态大模型逆向API【特长：超强多模态】，支持高速流式输出、联网搜索、长文档解读、图像解析、多轮对话，零配置部署，多路token支持，自动清理会话痕迹，仅供测试，如需商用请前往官方开放平台。","archived":false,"fork":false,"pushed_at":"2024-12-16T05:46:09.000Z","size":2269,"stargazers_count":224,"open_issues_count":3,"forks_count":78,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-03-19T12:44:09.544Z","etag":null,"topics":["chat-api","chatbot","chatgpt-api","llm","stepchat","stepfun"],"latest_commit_sha":null,"homepage":"https://platform.stepfun.com","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/LLM-Red-Team.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-03-29T20:31:49.000Z","updated_at":"2025-03-17T11:29:34.000Z","dependencies_parsed_at":"2024-04-24T06:47:21.942Z","dependency_job_id":"3f745c44-3db3-4ba4-931c-fc3538f3911c","html_url":"https://github.com/LLM-Red-Team/step-free-api","commit_stats":null,"previous_names":["llm-red-team/step-free-api"],"tags_count":20,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LLM-Red-Team%2Fstep-free-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LLM-Red-Team%2Fstep-free-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LLM-Red-Team%2Fstep-free-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LLM-Red-Team%2Fstep-free-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LLM-Red-Team","download_url":"https://codeload.github.com/LLM-Red-Team/step-free-api/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245269753,"owners_count":20587839,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["chat-api","chatbot","chatgpt-api","llm","stepchat","stepfun"],"created_at":"2024-07-31T08:01:34.976Z","updated_at":"2025-03-24T12:30:59.696Z","avatar_url":"https://github.com/LLM-Red-Team.png","language":"TypeScript","readme":"# 跃问StepChat Free 服务\n\n\u003chr\u003e\n\n\u003cspan\u003e[ 中文 | \u003ca href=\"README_EN.md\"\u003eEnglish\u003c/a\u003e ]\u003c/span\u003e\n\n[![](https://img.shields.io/github/license/llm-red-team/step-free-api.svg)](LICENSE)\n![](https://img.shields.io/github/stars/llm-red-team/step-free-api.svg)\n![](https://img.shields.io/github/forks/llm-red-team/step-free-api.svg)\n![](https://img.shields.io/docker/pulls/vinlic/step-free-api.svg)\n\n支持高速流式输出、支持多轮对话、支持联网搜索、支持长文档解读、支持图像解析，零配置部署，多路token支持，自动清理会话痕迹。\n\n与ChatGPT接口完全兼容。\n\n还有以下十个free-api欢迎关注：\n\nMoonshot AI（Kimi.ai）接口转API [kimi-free-api](https://github.com/LLM-Red-Team/kimi-free-api)\n\n阿里通义 (Qwen) 接口转API [qwen-free-api](https://github.com/LLM-Red-Team/qwen-free-api)\n\n智谱AI (智谱清言) 接口转API [glm-free-api](https://github.com/LLM-Red-Team/glm-free-api)\n\n秘塔AI (Metaso) 接口转API [metaso-free-api](https://github.com/LLM-Red-Team/metaso-free-api)\n\n字节跳动（豆包）接口转API [doubao-free-api](https://github.com/LLM-Red-Team/doubao-free-api)\n\n字节跳动（即梦AI）接口转API [jimeng-free-api](https://github.com/LLM-Red-Team/jimeng-free-api)\n\n讯飞星火（Spark）接口转API [spark-free-api](https://github.com/LLM-Red-Team/spark-free-api)\n\nMiniMax（海螺AI）接口转API [hailuo-free-api](https://github.com/LLM-Red-Team/hailuo-free-api)\n\n深度求索（DeepSeek）接口转API [deepseek-free-api](https://github.com/LLM-Red-Team/deepseek-free-api)\n\n聆心智能 (Emohaa) 接口转API [emohaa-free-api](https://github.com/LLM-Red-Team/emohaa-free-api)（当前不可用）\n\n## 目录\n\n* [免责声明](#免责声明)\n* [效果示例](#效果示例)\n* [接入准备](#接入准备)\n  * [多账号接入](#多账号接入)\n* [Docker部署](#Docker部署)\n  * [Docker-compose部署](#Docker-compose部署)\n  * [Render部署](#Render部署)\n  * [Vercel部署](#Vercel部署)\n* [原生部署](#原生部署)\n* [推荐使用客户端](#推荐使用客户端)\n* [接口列表](#接口列表)\n  * [对话补全](#对话补全)\n  * [文档解读](#文档解读)\n  * [图像解析](#图像解析)\n  * [refresh_token存活检测](#refresh_token存活检测)\n* [注意事项](#注意事项)\n  * [Nginx反代优化](#Nginx反代优化)\n  * [Token统计](#Token统计)\n* [Star History](#star-history)\n\n## 免责声明\n\n**逆向API是不稳定的，建议前往阶跃星辰官方 https://platform.stepfun.com/ 付费使用API，避免封禁的风险。**\n\n**本组织和个人不接受任何资金捐助和交易，此项目是纯粹研究交流学习性质！**\n\n**仅限自用，禁止对外提供服务或商用，避免对官方造成服务压力，否则风险自担！**\n\n**仅限自用，禁止对外提供服务或商用，避免对官方造成服务压力，否则风险自担！**\n\n**仅限自用，禁止对外提供服务或商用，避免对官方造成服务压力，否则风险自担！**\n\n## 效果示例\n\n### 验明正身Demo\n\n![验明正身](./doc/example-1.png)\n\n### 多轮对话Demo\n\n![多轮对话](./doc/example-2.png)\n\n### 联网搜索Demo\n\n![联网搜索](./doc/example-3.png)\n\n### 长文档解读Demo\n\n![长文档解读](./doc/example-4.png)\n\n### 图像解析Demo\n\n![图像解析](./doc/example-6.png)\n\n## 接入准备\n\n从 [yuewen.cn](https://yuewen.cn) 获取deviceId和Oasis-Token\n\n进入StepChat随便发起一个对话，然后F12打开开发者工具。\n\n1. 从Application \u003e LocalStorage中找到 `deviceId` 的值（去除双引号），如：`267bcc81a01c2032a11a3fc6ec3e372c380eb9d1`\n\n![example7](./doc/example-7.png)\n\n2. 从Application \u003e Cookies中找到 `Oasis-Token` 的值，如：`eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...`\n\n![example5](./doc/example-5.png)\n\n3. 将 `deviceId` 和 `Oasis-Token` 使用 `@` 拼接为Token，这将作为Authorization的Bearer Token值：`Authorization: Bearer 267bcc81a01c2032a11a3fc6ec3e372c380eb9d1@eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...`\n\n### 多账号接入\n\n你可以通过提供多个账号的refresh_token并使用`,`拼接提供：\n\n`Authorization: Bearer TOKEN1,TOKEN2,TOKEN3`\n\n每次请求服务会从中挑选一个。\n\n## Docker部署\n\n请准备一台具有公网IP的服务器并将8000端口开放。\n\n拉取镜像并启动服务\n\n```shell\ndocker run -it -d --init --name step-free-api -p 8000:8000 -e TZ=Asia/Shanghai vinlic/step-free-api:latest\n```\n\n查看服务实时日志\n\n```shell\ndocker logs -f step-free-api\n```\n\n重启服务\n\n```shell\ndocker restart step-free-api\n```\n\n停止服务\n\n```shell\ndocker stop step-free-api\n```\n\n### Docker-compose部署\n\n```yaml\nversion: '3'\n\nservices:\n  step-free-api:\n    container_name: step-free-api\n    image: vinlic/step-free-api:latest\n    restart: always\n    ports:\n      - \"8000:8000\"\n    environment:\n      - TZ=Asia/Shanghai\n```\n\n### Render部署\n\n**注意：部分部署区域可能无法连接step，如容器日志出现请求超时或无法连接，请切换其他区域部署！**\n**注意：免费账户的容器实例将在一段时间不活动时自动停止运行，这会导致下次请求时遇到50秒或更长的延迟，建议查看[Render容器保活](https://github.com/LLM-Red-Team/free-api-hub/#Render%E5%AE%B9%E5%99%A8%E4%BF%9D%E6%B4%BB)**\n\n1. fork本项目到你的github账号下。\n\n2. 访问 [Render](https://dashboard.render.com/) 并登录你的github账号。\n\n3. 构建你的 Web Service（New+ -\u003e Build and deploy from a Git repository -\u003e Connect你fork的项目 -\u003e 选择部署区域 -\u003e 选择实例类型为Free -\u003e Create Web Service）。\n\n4. 等待构建完成后，复制分配的域名并拼接URL访问即可。\n\n### Vercel部署\n\n**注意：Vercel免费账户的请求响应超时时间为10秒，但接口响应通常较久，可能会遇到Vercel返回的504超时错误！**\n\n请先确保安装了Node.js环境。\n\n```shell\nnpm i -g vercel --registry http://registry.npmmirror.com\nvercel login\ngit clone https://github.com/LLM-Red-Team/step-free-api\ncd step-free-api\nvercel --prod\n```\n\n## 原生部署\n\n请准备一台具有公网IP的服务器并将8000端口开放。\n\n请先安装好Node.js环境并且配置好环境变量，确认node命令可用。\n\n安装依赖\n\n```shell\nnpm i\n```\n\n安装PM2进行进程守护\n\n```shell\nnpm i -g pm2\n```\n\n编译构建，看到dist目录就是构建完成\n\n```shell\nnpm run build\n```\n\n启动服务\n\n```shell\npm2 start dist/index.js --name \"step-free-api\"\n```\n\n查看服务实时日志\n\n```shell\npm2 logs step-free-api\n```\n\n重启服务\n\n```shell\npm2 reload step-free-api\n```\n\n停止服务\n\n```shell\npm2 stop step-free-api\n```\n\n## 推荐使用客户端\n\n使用以下二次开发客户端接入free-api系列项目更快更简单，支持文档/图像上传！\n\n由 [Clivia](https://github.com/Yanyutin753/lobe-chat) 二次开发的LobeChat [https://github.com/Yanyutin753/lobe-chat](https://github.com/Yanyutin753/lobe-chat)\n\n由 [时光@](https://github.com/SuYxh) 二次开发的ChatGPT Web [https://github.com/SuYxh/chatgpt-web-sea](https://github.com/SuYxh/chatgpt-web-sea)\n\n## 接口列表\n\n目前支持与openai兼容的 `/v1/chat/completions` 接口，可自行使用与openai或其他兼容的客户端接入接口，或者使用 [dify](https://dify.ai/) 等线上服务接入使用。\n\n### 对话补全\n\n对话补全接口，与openai的 [chat-completions-api](https://platform.openai.com/docs/guides/text-generation/chat-completions-api) 兼容。\n\n**POST /v1/chat/completions**\n\nheader 需要设置 Authorization 头部：\n\n```\nAuthorization: Bearer [refresh_token]\n```\n\n请求数据：\n```json\n{\n    // 模型名称随意填写\n    \"model\": \"step\",\n    \"messages\": [\n        {\n            \"role\": \"user\",\n            \"content\": \"你是谁？\"\n        }\n    ],\n    // 如果使用SSE流请设置为true，默认false\n    \"stream\": false\n}\n```\n\n响应数据：\n```json\n{\n    \"id\": \"85466015488159744\",\n    \"model\": \"step\",\n    \"object\": \"chat.completion\",\n    \"choices\": [\n        {\n            \"index\": 0,\n            \"message\": {\n                \"role\": \"assistant\",\n                \"content\": \"我是跃问(StepChat)，一个由阶跃星辰(StepFun)开发的多模态大模型。我可以回答您的问题，提供信息和帮助，同时支持多种模态的交互，如文字、图像等。如果您有任何问题或需要帮助，请随时向我提问。\"\n            },\n            \"finish_reason\": \"stop\"\n        }\n    ],\n    \"usage\": {\n        \"prompt_tokens\": 1,\n        \"completion_tokens\": 1,\n        \"total_tokens\": 2\n    },\n    \"created\": 1711829974\n}\n```\n\n### 文档解读\n\n提供一个可访问的文件URL或者BASE64_URL进行解析。\n\n**POST /v1/chat/completions**\n\nheader 需要设置 Authorization 头部：\n\n```\nAuthorization: Bearer [refresh_token]\n```\n\n请求数据：\n```json\n{\n    // 模型名称随意填写\n    \"model\": \"step\",\n    \"messages\": [\n        {\n            \"role\": \"user\",\n            \"content\": [\n                {\n                    \"type\": \"file\",\n                    \"file_url\": {\n                        \"url\": \"https://mj101-1317487292.cos.ap-shanghai.myqcloud.com/ai/test.pdf\"\n                    }\n                },\n                {\n                    \"type\": \"text\",\n                    \"text\": \"文档里说了什么？\"\n                }\n            ]\n        }\n    ]\n}\n```\n\n响应数据：\n```json\n{\n    \"id\": \"85774360661086208\",\n    \"model\": \"step\",\n    \"object\": \"chat.completion\",\n    \"choices\": [\n        {\n            \"index\": 0,\n            \"message\": {\n                \"role\": \"assistant\",\n                \"content\": \"这是一个关于爱情魔法的文档。它包含了四个部分：\\n\\n1. **PMG 4.1390 – 1495**：这是一个使用面包和咒语来吸引心仪女性的仪式。仪式中需要将面包分成七个小块，并在特定地点进行咒语的念诵和投掷。\\n2. **PMG 4.1342 – 57**：这是一个召唤恶魔来使一个名叫Tereous的女性受到折磨，直到她与一个名叫Didymos的人相爱并结合的咒语。\\n3. **PGM 4.1265 – 74**：这是关于如何赢得一个美丽的女人的咒语。它涉及到连续三天保持纯洁，向女神阿佛洛狄特（Aphrodite）供奉乳香，并在心中默念她的神秘名字。\\n4. **PGM 4.1496 – 1**：这是一个使用没药来吸引一个特定女性的咒语。这个咒语需要在煤上焚烧没药的同时念诵，目的是让这个女性心中只想着施咒者，并最终与施咒者相爱。\"\n            },\n            \"finish_reason\": \"stop\"\n        }\n    ],\n    \"usage\": {\n        \"prompt_tokens\": 1,\n        \"completion_tokens\": 1,\n        \"total_tokens\": 2\n    },\n    \"created\": 1711903489\n}\n```\n\n### 图像解析\n\n提供一个可访问的图像URL或者BASE64_URL进行解析。\n\n此格式兼容 [gpt-4-vision-preview](https://platform.openai.com/docs/guides/vision) API格式，您也可以用这个格式传送文档进行解析。\n\n**POST /v1/chat/completions**\n\nheader 需要设置 Authorization 头部：\n\n```\nAuthorization: Bearer [refresh_token]\n```\n\n请求数据：\n```json\n{\n    // 模型名称随意填写\n    \"model\": \"step\",\n    \"messages\": [\n        {\n            \"role\": \"user\",\n            \"content\": [\n                {\n                    \"type\": \"image_url\",\n                    \"image_url\": {\n                        \"url\": \"https://k.sinaimg.cn/n/sinakd20111/106/w1024h682/20240327/babd-2ce15fdcfbd6ddbdc5ab588c29b3d3d9.jpg/w700d1q75cms.jpg\"\n                    }\n                },\n                {\n                    \"type\": \"text\",\n                    \"text\": \"图像描述了什么？\"\n                }\n            ]\n        }\n    ]\n}\n```\n\n响应数据：\n```json\n{\n    \"id\": \"85773574417829888\",\n    \"model\": \"step\",\n    \"object\": \"chat.completion\",\n    \"choices\": [\n        {\n        \"index\": 0,\n        \"message\": {\n            \"role\": \"assistant\",\n            \"content\": \"这张图片展示了一个活动现场，似乎是某种新产品或技术的发布会。图片中央有一个大屏幕，上面写着“创新技术及产品首发”，屏幕上还展示了一些公司的标志或名称，如“RWKV”、“财跃星辰”、“阶跃星辰”、“商汤”和“零方科技”。在屏幕下方的舞台上，有几位穿着正装的人士正在进行互动，可能是在进行产品发布或演示。整个场景给人一种正式且科技感十足的印象。\"\n        },\n        \"finish_reason\": \"stop\"\n        }\n    ],\n    \"usage\": {\n        \"prompt_tokens\": 1,\n        \"completion_tokens\": 1,\n        \"total_tokens\": 2\n    },\n    \"created\": 1711903302\n}\n```\n\n### refresh_token存活检测\n\n检测refresh_token是否存活，如果存活live未true，否则为false，请不要频繁（小于10分钟）调用此接口。\n\n**POST /token/check**\n\n请求数据：\n```json\n{\n    \"token\": \"267bcc81a01c2032a11a3fc6ec3e372c380eb9d1@eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...\"\n}\n```\n\n响应数据：\n```json\n{\n    \"live\": true\n}\n```\n\n## 注意事项\n\n### Nginx反代优化\n\n如果您正在使用Nginx反向代理step-free-api，请添加以下配置项优化流的输出效果，优化体验感。\n\n```nginx\n# 关闭代理缓冲。当设置为off时，Nginx会立即将客户端请求发送到后端服务器，并立即将从后端服务器接收到的响应发送回客户端。\nproxy_buffering off;\n# 启用分块传输编码。分块传输编码允许服务器为动态生成的内容分块发送数据，而不需要预先知道内容的大小。\nchunked_transfer_encoding on;\n# 开启TCP_NOPUSH，这告诉Nginx在数据包发送到客户端之前，尽可能地发送数据。这通常在sendfile使用时配合使用，可以提高网络效率。\ntcp_nopush on;\n# 开启TCP_NODELAY，这告诉Nginx不延迟发送数据，立即发送小数据包。在某些情况下，这可以减少网络的延迟。\ntcp_nodelay on;\n# 设置保持连接的超时时间，这里设置为120秒。如果在这段时间内，客户端和服务器之间没有进一步的通信，连接将被关闭。\nkeepalive_timeout 120;\n```\n\n### Token统计\n\n由于推理侧不在step-free-api，因此token不可统计，将以固定数字返回!!!!!\n\n## Star History\n\n[![Star History Chart](https://api.star-history.com/svg?repos=LLM-Red-Team/step-free-api\u0026type=Date)](https://star-history.com/#LLM-Red-Team/step-free-api\u0026Date)\n","funding_links":[],"categories":["TypeScript"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FLLM-Red-Team%2Fstep-free-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FLLM-Red-Team%2Fstep-free-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FLLM-Red-Team%2Fstep-free-api/lists"}