Spaces:
Runtime error
Runtime error
title: Partyrock2API | |
emoji: 🎉 | |
colorFrom: indigo | |
colorTo: purple | |
sdk: docker | |
app_file: index.js | |
pinned: false | |
# partyrock2api | |
基于partyrock的转openAI服务,抱脸部署 | |
## 支持模型 | |
- claude-3-5-haiku-20241022 | |
- claude-3-5-sonnet-20241022 | |
- nova-lite-v1-0 | |
- nova-pro-v1-0 | |
- llama3-1-7b | |
- llama3-1-70b | |
- mistral-small | |
- mistral-large | |
## 请求格式 | |
已转换为OpenAI格式,支持非流与流式请求,支持temperature与topP传参: | |
## 获取模型列表 | |
``` | |
curl https:/http://127.0.0.1:7860/v1/models | |
``` | |
## 聊天请求 | |
``` | |
curl https://http://127.0.0.1:7860/v1/chat/completions \ | |
-H "Content-Type: application/json" \ | |
-H "Authorization: Bearer YOUR_API_KEY" \ | |
-d '{ | |
"model": "claude-3-5-sonnet-20241022", | |
"messages": [ | |
{ | |
"role": "user", | |
"content": "Hello, can you help me?" | |
} | |
], | |
"temperature": 0.7, | |
"topP": 1 | |
}' | |
``` | |
## 抱脸部署 | |
下载文件,创建新的docker抱脸项目,然后上传文件,等待运行即可 | |
## 本地docker部署 | |
下载文件,然后创建镜像。 | |
``` | |
docker build -t youname/partyrock2api . | |
``` | |
docker运行 | |
``` | |
docker run -it -d --name partyrock2api \ | |
--network=my_custom_network \ | |
-p 7860:7860 \ | |
-e API_KEY=your_api_key \ | |
-e RedisUrl=your_RedisUrl \ | |
-e RedisToken=your_RedisUrl \ | |
-e AUTH_TOKENS_0_REFRESH_URL=your_referer \ | |
-e AUTH_TOKENS_0_ANTI_CSRF_TOKEN=your_partyrock_anti-csrftoken-a2z\ | |
-e AUTH_TOKENS_0_COOKIE=your_ partyrockCookie \ | |
-e PORT=7860 \ | |
youname/partyrock2api:latest | |
``` | |
## 端口 | |
- 默认端口:7860 | |
## 主要变量参数获取方式 | |
1、打开登录这个网站[partyrock](https://partyrock.aws/),然后创建一个聊天app. | |
 | |
2、先打开f12,进入network界面,然后进行对话,完整复制下面的信息,分别为anti-csrftoken-a2z,Referer, Cookie的值,最好对话两次再获取cookie的值,有可能第一次没有验证用的waf cookie,导致后面报错400。 | |
 | |
 | |
3、redis保护需要的token获取方式 | |
注册账号后创建数据库选择免费计划,然后在这里获取url和认证密钥填入环境变量。 | |
 | |
4、抱脸ip可能被封,可能需要反代,才能正常使用 | |
创建deno账号创建项目,复制如下代码,然后获取url | |
``` | |
import { serve } from "https://deno.land/[email protected]/http/server.ts"; | |
const PROXY_DOMAIN = "https://partyrock.aws/stream/getCompletion"; | |
const PORT = 8080; | |
async function handler(req: Request): Promise<Response> { | |
try { | |
const url = new URL(req.url); | |
const targetUrl = `${PROXY_DOMAIN}${url.pathname}${url.search}`; | |
const proxyResponse = await fetch(targetUrl, { | |
headers: req.headers, | |
method: req.method, | |
body: req.body | |
}); | |
// 返回代理响应,保留状态码和响应头 | |
return new Response(proxyResponse.body, { | |
status: proxyResponse.status, | |
headers: proxyResponse.headers | |
}); | |
} catch (error) { | |
console.error("代理请求失败:", error); | |
return new Response("代理服务器错误", { status: 500 }); | |
} | |
} | |
serve(handler, { port: PORT }); | |
``` | |
 | |
 | |
## 声明 | |
请勿用于商业用途。 | |