52 私有链接
本项目是一个开源项目,旨在将Pieces-OS的GRPC流转换为标准的OpenAI接口。所有模型由Pieces-OS提供,基于GPLV3协议开源。项目支持一键部署、Docker部署和Serverless部署,并提供多种模型如Claude、GPT、Gemini等。用户可以通过设置环境变量如API_KEY、PORT等来配置服务。项目还提供了Docker部署说明和一键安装脚本,适用于Ubuntu和Debian系统。请注意,本项目仅供学习交流使用,不得用于商业用途。
Pieces-OS逆向项目更新至2.0版本,支持Vercel一键部署。建议用户尽量自己搭建服务,以减轻公开服务的负担。项目提供了一个demo站,用户可以通过curl命令获取模型。开发者请求用户如果觉得项目有用,可以给项目点个Star以示支持。此外,项目已加入Docker支持,用户如有需求可以在下方留言。
注册送十元
https://agicto.com/
作者在周末不想打游戏时,用Java编写了一个脚本,用于免费获取某AI大模型网站的API Key,额度为10元。该脚本需要使用匿名邮箱的API Key。作者在帖子中分享了代码,并请求大佬们指点。此外,作者还提到了使用临时邮箱API(如mail.tm)进行测试,并询问该平台有哪些模型。
package cn.zhaotx.bid.opening.service.business.impl;
import cn.zhaotx.core.common.utils.CollectionUtil;
import cn.zhaotx.core.common.utils.JsonUtil;
import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.extern.log4j.Log4j2;
import okhttp3.*;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.nodes.Node;
import org.junit.jupiter.api.Test;
import java.io.IOException;
import java.util.List;
@Log4j2
class ProjectZApiKeyTest {
public static String apiUrl = "https://api.agicto.cn/v1";
public static String openKey = "";
public static String email = "";
public static String emailId = "";
public static String emailListId = "";
public static String emailInfoId = "";
public static String verifyCode = "";
public static String accessToken = "";
public static String apikey = "idr_7af22f165bef05xxxxxxxxx";
public static String HtmlParser(String html) {
// String html = "<!DOCTYPE html>\\r\\n<html lang=\\\"en\\\">\\r\\n\\r\\n<head>\\r\\n <meta charset=\\\"UTF-8\\\" />\\r\\n <meta http-equiv=\\\"X-UA-Compatible\\\" content=\\\"IE=edge\\\" />\\r\\n <meta name=\\\"viewport\\\" content=\\\"width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0\\\" />\\r\\n <title>AGICTO</title>\\r\\n <style>\\r\\n * {\\r\\n margin: 0;\\r\\n padding: 0;\\r\\n }\\r\\n @media screen and (max-width: 600px) {\\r\\n .code {\\r\\n max-width: 100%;\\r\\n padding: 0 20px;\\r\\n }\\r\\n\\r\\n .logo {\\r\\n max-width: 100%;\\r\\n }\\r\\n\\r\\n .worry {\\r\\n width: 100%;\\r\\n }\\r\\n\\r\\n .code-box {\\r\\n width: 100%;\\r\\n background: white;\\r\\n }\\r\\n\\r\\n .container {\\r\\n width: 100%;\\r\\n }\\r\\n\\r\\n .container .header {\\r\\n margin-bottom: 0px;\\r\\n }\\r\\n }\\r\\n </style>\\r\\n</head>\\r\\n<body style=\\\"margin:0;padding:0;background: white;\\\">\\r\\n<div style=\\\"background: #f7f7f7;width: 604px;margin: 0 auto;overflow: hidden;font-family:'Averta CY';position: relative;display: flex;align-items: center;flex-direction: column;\\\">\\r\\n <div style=\\\"margin:0 auto;background: #3162ff;max-width: 604px;overflow: hidden;margin-bottom: 25px;\\\">\\r\\n <img src=\\\"https://ew6.cn/agicto_logo_white.png\\\" style=\\\"width: 170px; display: block; margin: 24px auto\\\" alt=\\\"\\\" />\\r\\n </div>\\r\\n <div class=\\\"code\\\" style=\\\"margin: 0 auto;max-width: 604px;border-radius: 24px;background: white;\\\">\\r\\n <div class=\\\"lg\\\" style=\\\"border: 1px solid #e0e2ef;border-radius: 24px;\\\">\\r\\n <div style=\\\"padding: 0 20px\\\">\\r\\n <h1 style=\\\"font-style: normal;font-weight: 700;font-size: 24px;line-height: 36px;text-align: center;color: #050a22;margin-top: 40px;\\\">登录验证码</h1>\\r\\n <div class=\\\"code-box\\\" style=\\\"width: 364px;height: 64px;background: #f7f9fc;border: 1px solid #e0e2ef;border-radius: 16px;margin: 0 auto;color: #050a22;font-size: 32px;line-height: 64px;text-align: center;font-weight: 700;margin-top: 64px;\\\">846865</div>\\r\\n <p style=\\\"width:364px;text-align: center;margin: 48px auto 64px;color: #050a22;font-weight: 700;font-size: 16px;\\\">\\r\\n 请勿将此验证码泄露给任何人!\\r\\n </p>\\r\\n </div>\\r\\n <div style=\\\"padding: 32px 36px;background: white;font-size: 14px;line-height: 20px;text-align: center;border-radius: 0 0 24px 24px;\\\">\\r\\n <div style=\\\"line-height: 20px;margin-top: 4px;\\\">Sent with ❤\uFE0Ffrom AGICTO</div>\\r\\n <a href=\\\"https://www.agicto.com\\\">www.agicto.com</a>\\r\\n <div style=\\\"line-height: 20px;margin-top: 4px;\\\">有任何问题欢迎联系我们</div>\\r\\n <div style=\\\"line-height: 20px;margin-top: 4px;color:#858b98;\\\" >\\r\\n 官方微信:starkwang_\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n</body>\\r\\n\\r\\n</html>\\r\\n";
String htmlInfo = html.replace("\\n", "").replace("\\r", "");
// 解析HTML字符串
Document doc = Jsoup.parse(htmlInfo);
Element codeBox = doc.select("body").first();
Element child = codeBox.child(0);
Element child1 = child.child(1);
Node node = child1.childNode(1);
Node child3 = node.childNode(1);
Node child4 = child3.childNode(3);
Node child5 = child4.childNode(0);
// 输出"code-box"内容
if (child5 != null) {
System.out.println("Code Box Content: " + child5);
return child5.toString();
} else {
System.out.println("Element not found");
}
return null;
}
public static void JsonInfoTest() {
String accessTokenJson = "{\n" + " \"code\": 0,\n" + " \"message\": \"ok\",\n" + " \"data\": {\n" + " \"access_token\": \"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwczovL2FwaS5pb2lpLmNuL3YxL2xvZ2luQnlDb2RlIiwiaWF0IjoxNzMwNDQ4MjUwLCJleHAiOjE4ODU5NjgyNTAsIm5iZiI6MTczMDQ0ODI1MCwianRpIjoiWmNvZDZlQ3ZlRXZKVDlGOSIsInN1YiI6MjU5MDMsInBydiI6Ijg3ZTBhZjFlZjlmZDE1ODEyZmRlYzk3MTUzYTE0ZTBiMDQ3NTQ2YWEifQ.UZYzsbKPCbAejaBJWBqMZq7frNgVjzzo93QHrFcjJ_E\",\n" + " \"token_type\": \"bearer\",\n" + " \"expires_in\": 155520000\n" + " }\n" + "}";
String recordListJson = "{\n" + " \"code\": 0,\n" + " \"message\": \"请求成功\",\n" + " \"data\": {\n" + " \"recordList\": [\n" + " {\n" + " \"id\": 26523,\n" + " \"name\": \"默认\",\n" + " \"showKey\": \"sk-************OgWong\",\n" + " \"openKey\": \"sk-BMMCDkTf9iP4l6cNpRnpcsaHKtHpQgKmpSFI9EXmawOgWong\",\n" + " \"createTime\": \"2024-11-01 16:02:34\",\n" + " \"status\": 1\n" + " }\n" + " ]\n" + " }\n" + "}";
ObjectMapper objectMapper = new ObjectMapper();
try {
// 解析 access_token 响应
AccessTokenResponse accessTokenResponse = objectMapper.readValue(accessTokenJson, AccessTokenResponse.class);
System.out.println("Access Token: " + accessTokenResponse.getData().getAccess_token());
System.out.println("Token Type: " + accessTokenResponse.getData().getToken_type());
System.out.println("Expires In: " + accessTokenResponse.getData().getExpires_in());
// 解析 recordList 响应
RecordResponse recordListResponse = objectMapper.readValue(recordListJson, RecordResponse.class);
for (RecordResponse.Record record : recordListResponse.getData().getRecordList()) {
System.out.println("Record ID: " + record.getId());
System.out.println("Record Name: " + record.getName());
System.out.println("Record ShowKey: " + record.getShowKey());
System.out.println("Record OpenKey: " + record.getOpenKey());
System.out.println("Record CreateTime: " + record.getCreateTime());
System.out.println("Record Status: " + record.getStatus());
}
} catch (IOException e) {
e.printStackTrace();
}
}
public static void JsonTest() {
String json1 = "{\"code\":0,\"credits\":0,\"result\":{\"email\":\"aeissvccpj@uselesss.org\",\"id\":\"YWVpc3N2Y2NwakB1c2VsZXNzcy5vcmc=\"},\"tip\":\"You can read document or contact provider: https://www.idatariver.com/project/temp-mail-api-cbea\"}";
String json2 = "{\"code\":0,\"credits\":0,\"result\":{\"messages\":[{\"from\":\"system@email.chateai.com\",\"id\":\"6724713b238fcd78e89e4b18\",\"subject\":\"您的验证码\",\"time\":1730441531}]},\"tip\":\"You can read document or contact provider: https://www.idatariver.com/project/temp-mail-api-cbea\"}";
String json3 = "{\"code\":0,\"credits\":0,\"result\":{\"content\":\"<!DOCTYPE html>\\r\\n<html lang=\\\"en\\\">\\r\\n\\r\\n<head>\\r\\n <meta charset=\\\"UTF-8\\\" />\\r\\n <meta http-equiv=\\\"X-UA-Compatible\\\" content=\\\"IE=edge\\\" />\\r\\n <meta name=\\\"viewport\\\" content=\\\"width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0\\\" />\\r\\n <title>AGICTO</title>\\r\\n <style>\\r\\n * {\\r\\n margin: 0;\\r\\n padding: 0;\\r\\n }\\r\\n @media screen and (max-width: 600px) {\\r\\n .code {\\r\\n max-width: 100%;\\r\\n padding: 0 20px;\\r\\n }\\r\\n\\r\\n .logo {\\r\\n max-width: 100%;\\r\\n }\\r\\n\\r\\n .worry {\\r\\n width: 100%;\\r\\n }\\r\\n\\r\\n .code-box {\\r\\n width: 100%;\\r\\n background: white;\\r\\n }\\r\\n\\r\\n .container {\\r\\n width: 100%;\\r\\n }\\r\\n\\r\\n .container .header {\\r\\n margin-bottom: 0px;\\r\\n }\\r\\n }\\r\\n </style>\\r\\n</head>\\r\\n<body style=\\\"margin:0;padding:0;background: white;\\\">\\r\\n<div style=\\\"background: #f7f7f7;width: 604px;margin: 0 auto;overflow: hidden;font-family:'Averta CY';position: relative;display: flex;align-items: center;flex-direction: column;\\\">\\r\\n <div style=\\\"margin:0 auto;background: #3162ff;max-width: 604px;overflow: hidden;margin-bottom: 25px;\\\">\\r\\n <img src=\\\"https://ew6.cn/agicto_logo_white.png\\\" style=\\\"width: 170px; display: block; margin: 24px auto\\\" alt=\\\"\\\" />\\r\\n </div>\\r\\n <div class=\\\"code\\\" style=\\\"margin: 0 auto;max-width: 604px;border-radius: 24px;background: white;\\\">\\r\\n <div class=\\\"lg\\\" style=\\\"border: 1px solid #e0e2ef;border-radius: 24px;\\\">\\r\\n <div style=\\\"padding: 0 20px\\\">\\r\\n <h1 style=\\\"font-style: normal;font-weight: 700;font-size: 24px;line-height: 36px;text-align: center;color: #050a22;margin-top: 40px;\\\">登录验证码</h1>\\r\\n <div class=\\\"code-box\\\" style=\\\"width: 364px;height: 64px;background: #f7f9fc;border: 1px solid #e0e2ef;border-radius: 16px;margin: 0 auto;color: #050a22;font-size: 32px;line-height: 64px;text-align: center;font-weight: 700;margin-top: 64px;\\\">846865</div>\\r\\n <p style=\\\"width:364px;text-align: center;margin: 48px auto 64px;color: #050a22;font-weight: 700;font-size: 16px;\\\">\\r\\n 请勿将此验证码泄露给任何人!\\r\\n </p>\\r\\n </div>\\r\\n <div style=\\\"padding: 32px 36px;background: white;font-size: 14px;line-height: 20px;text-align: center;border-radius: 0 0 24px 24px;\\\">\\r\\n <div style=\\\"line-height: 20px;margin-top: 4px;\\\">Sent with ❤️from AGICTO</div>\\r\\n <a href=\\\"https://www.agicto.com\\\">www.agicto.com</a>\\r\\n <div style=\\\"line-height: 20px;margin-top: 4px;\\\">有任何问题欢迎联系我们</div>\\r\\n <div style=\\\"line-height: 20px;margin-top: 4px;color:#858b98;\\\" >\\r\\n 官方微信:starkwang_\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n</body>\\r\\n\\r\\n</html>\\r\\n\",\"from\":\"system@email.chateai.com\",\"subject\":\"您的验证码\",\"time\":1730441531},\"tip\":\"You can read document or contact provider: https://www.idatariver.com/project/temp-mail-api-cbea\"}";
try {
ObjectMapper objectMapper = new ObjectMapper();
// 解析第一种 JSON 结构
EmailResponse emailResponse = objectMapper.readValue(json1, EmailResponse.class);
System.out.println("Email: " + emailResponse.getResult().getEmail());
// 解析第二种 JSON 结构
MessagesResponse messagesResponse = objectMapper.readValue(json2, MessagesResponse.class);
System.out.println("Message Subject: " + messagesResponse.getResult().getMessages().get(0).getSubject());
// 解析第三种 JSON 结构
ContentResponse contentResponse = objectMapper.readValue(json3, ContentResponse.class);
System.out.println("Content: " + contentResponse.getResult().getContent());
System.out.println("Subject: " + contentResponse.getResult().getSubject());
} catch (Exception e) {
log.info(e);
}
}
@Test
void test1() throws IOException, InterruptedException {
getEmailAddress();
sendVerifyCode();
getEmailList();
getEmailDetail();
loginByCode();
keyList();
}
public void getEmailAddress() throws IOException {
log.info("getEmailAddress start");
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder().url("https://apiok.us/api/cbea/generate/v1?apikey=" + apikey + "&type=*").build();
try (Response response = client.newCall(request).execute()) {
if (!response.isSuccessful()) throw new IOException("Unexpected code " + response);
String jsonString = response.body().string();
log.info(jsonString);
ObjectMapper objectMapper = new ObjectMapper();
// 解析第一种 JSON 结构
EmailResponse emailResponse = objectMapper.readValue(jsonString, EmailResponse.class);
// 从result的JSONObject中获取email
email = emailResponse.getResult().email;
emailId = emailResponse.getResult().id;
log.info("email:{}" + email);
log.info("emailId:{}" + emailId);
} catch (Exception e) {
log.info(e);
}
log.info("getEmailAddress end");
}
public void sendVerifyCode() throws IOException {
log.info("sendVerifyCode start");
OkHttpClient client = new OkHttpClient();
String requestBodyStr = "{\n \"email\": \"" + email + "\",\n \"channel\": \"\"\n}";
RequestBody requestBody = RequestBody.create(requestBodyStr.getBytes());
Request request = new Request.Builder().url("https://api.ioii.cn/v1/sendVerifyCode").post(requestBody).header("sec-ch-ua", "\"Chromium\";v=\"124\", \"Microsoft Edge\";v=\"124\", \"Not-A.Brand\";v=\"99\"").header("Accept", "application/json, text/plain, */*").header("Content-Type", "application/json").header("Referer", "https://agicto.com/").header("sec-ch-ua-mobile", "?0").header("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36 Edg/124.0.0.0").header("sec-ch-ua-platform", "\"Windows\"").build();
try (Response response = client.newCall(request).execute()) {
if (!response.isSuccessful()) throw new IOException("Unexpected code " + response);
log.info(response.body().string());
}
log.info("sendVerifyCode end");
}
public void getEmailList() throws IOException, InterruptedException {
Thread.sleep(10000L);
log.info("getEmailList start");
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder().url("https://apiok.us/api/cbea/messages/v1?apikey=" + apikey + "&id=" + emailId).build();
log.info("url:" + request.url());
try (Response response = client.newCall(request).execute()) {
if (!response.isSuccessful()) throw new IOException("Unexpected code " + response);
String jsonString = response.body().string();
log.info(jsonString);
ObjectMapper objectMapper = new ObjectMapper();
MessagesResponse messagesResponse = objectMapper.readValue(jsonString, MessagesResponse.class);
List<MessagesResponse.Result.Message> messages = messagesResponse.result.messages;
if (CollectionUtil.isNotEmpty(messages)) {
MessagesResponse.Result.Message message = messages.get(0);
String id = message.getId();
emailListId = id;
log.info("emailListId:{}" + emailListId);
}
} catch (Exception e) {
log.info(e);
}
log.info("getEmailList end");
}
public void getEmailDetail() throws IOException {
log.info("getEmailDetail start");
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder().url("https://apiok.us/api/cbea/message/detail/v1?apikey=" + apikey + "&id=" + emailListId).build();
try (Response response = client.newCall(request).execute()) {
if (!response.isSuccessful()) throw new IOException("Unexpected code " + response);
String jsonString = response.body().string();
log.info(jsonString);
log.info(jsonString);
// 获取邮箱验证码
ObjectMapper objectMapper = new ObjectMapper();
ContentResponse contentResponse = objectMapper.readValue(jsonString, ContentResponse.class);
ContentResponse.Result result = contentResponse.getResult();
String contentHTML = result.getContent();
verifyCode = HtmlParser(contentHTML);
log.info("verifyCode:" + verifyCode);
} catch (Exception e) {
log.info(e);
}
log.info("getEmailDetail end");
}
public void loginByCode() throws IOException {
log.info("loginByCode start");
OkHttpClient client = new OkHttpClient();
log.info("email:" + email);
log.info("verifyCode:" + verifyCode);
EmailBody emailBody = new EmailBody();
emailBody.setEmail(email);
emailBody.setVerify_code(verifyCode);
MediaType mediaType = MediaType.parse("application/json");
String jsonBody = JsonUtil.toJson(emailBody);
RequestBody body = RequestBody.create(mediaType, jsonBody);
Request request = new Request.Builder()
.url("https://api.ioii.cn/v1/loginByCode")
.post(body)
.header("sec-ch-ua", "\"Chromium\";v=\"124\", \"Microsoft Edge\";v=\"124\", \"Not-A.Brand\";v=\"99\"")
.header("Accept", "application/json, text/plain, */*")
.header("Content-Type", "application/json")
.header("Referer", "https://agicto.com/")
.header("sec-ch-ua-mobile", "?0")
.header("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36 Edg/124.0.0.0")
.header("sec-ch-ua-platform", "\"Windows\"")
.build();
log.info("url:" + request.url());
log.info("body:" + request.body());
try (Response response = client.newCall(request).execute()) {
if (!response.isSuccessful()) throw new IOException("Unexpected code " + response);
String jsonString = response.body().string();
log.info(jsonString);
// 获取到token TODO
ObjectMapper objectMapper = new ObjectMapper();
AccessTokenResponse accessTokenResponse = objectMapper.readValue(jsonString, AccessTokenResponse.class);
accessToken = accessTokenResponse.data.access_token;
log.info("accessToken:{}" + accessToken);
}
log.info("loginByCode end");
}
public void keyList() throws IOException {
log.info("keyList start");
OkHttpClient client = new OkHttpClient();
// 构建 POST 请求,包含一个有效的请求体
RequestBody requestBody = RequestBody.create(MediaType.parse("application/json; charset=utf-8"), "");
Request request = new Request.Builder()
.url("https://api.ioii.cn/v1/service/keyList")
.post(requestBody) // 使用 post() 方法并传入有效的请求体
.header("Authorization", "Bearer " + accessToken)
.build();
try (Response response = client.newCall(request).execute()) {
if (!response.isSuccessful()) throw new IOException("Unexpected code " + response);
String string = response.body().string();
log.info(string);
ObjectMapper objectMapper = new ObjectMapper();
RecordResponse recordResponse = objectMapper.readValue(string, RecordResponse.class);
// 获取到api Key
recordResponse.data.recordList.forEach(record -> {
openKey = record.getOpenKey();
log.info("************openKey***********");
log.info(openKey);
log.info("************openKey***********");
});
}
log.info("keyList end");
}
@Data
@NoArgsConstructor
@AllArgsConstructor
public static class EmailResponse {
private int code;
private int credits;
private Result result;
private String tip;
@Data
@NoArgsConstructor
@AllArgsConstructor
public static class Result {
private String email;
private String id;
}
}
@Data
@NoArgsConstructor
@AllArgsConstructor
public static class MessagesResponse {
private int code;
private int credits;
private String tip;
private Result result;
@Data
@NoArgsConstructor
@AllArgsConstructor
public static class Result {
private List<Message> messages;
@Data
@NoArgsConstructor
@AllArgsConstructor
public static class Message {
private String from;
private String id;
private String subject;
private long time;
}
}
}
@Data
@NoArgsConstructor
@AllArgsConstructor
public static class ContentResponse {
private int code;
private int credits;
private String tip;
private Result result;
@Data
@NoArgsConstructor
@AllArgsConstructor
public static class Result {
private String content;
private String from;
private String subject;
private long time;
}
}
@Data
@NoArgsConstructor
@AllArgsConstructor
public static class AccessTokenResponse {
private int code;
private String message;
private Data data;
@lombok.Data
@NoArgsConstructor
@AllArgsConstructor
public static class Data {
private String access_token;
private String token_type;
private long expires_in;
}
}
@Data
@NoArgsConstructor
@AllArgsConstructor
public static class RecordResponse {
private int code;
private String message;
private RecordList data;
@Data
@NoArgsConstructor
@AllArgsConstructor
public static class RecordList {
private List<Record> recordList;
}
@Data
@NoArgsConstructor
@AllArgsConstructor
public static class Record {
private int id;
private String name;
private String showKey;
private String openKey;
private String createTime;
private int status;
}
}
@Data
@NoArgsConstructor
@AllArgsConstructor
public static class EmailBody {
private String email;
private String verify_code;
}
}
作者分享了自己从VPS小白到大白的成长经历,总结了几项关键技术经验:包括VPS优化(参考Jensfrank和Yuju的帖子,并加入个人见解)、IP被屏蔽后的拯救指南、增加防护措施的NPM与XUI Cloudflare共存指南、解锁流媒体的3X-UI WARP搭建指南,以及解决IP送中问题的指南。内容丰富实用,适合初学者学习交流。
这个内容介绍了一个名为“OAIFree Search(Shared)”的Chrome插件,它允许用户在地址栏直接使用OAIFree共享搜索。用户可以通过下载并解压插件文件,然后在Chrome的扩展程序设置中加载该插件来安装。插件使用GPL-3.0许可证,目前有96个星标、4个分叉和3个观察者。
lmsys确实是当前认可度最高的,由于帖子没有把竞技场放进来,所以一开始没放lmsys,现在作为补充,供大家了解最客观的榜单。
chatbot arena https://chat.lmsys.org 80
最真实可信的毫无疑问是Chatbot Arena。Lecun,Karpathy,Ilya等大神和Altman等人都认可这个榜单。这个榜单是人类盲测的,且测评的网友数量是所有榜单中最多的。我自己使用这些llm的感受也和arena的leaderboard一样。
雨滴开始自自由下落时质量为 m0。在下落过程中,单位时间凝聚的水汽质量为 λ(λ为常量)。试求雨滴经过时间 t下落的距离。忽略空气阻力。重力加速度为g。
其它ai模型包括c3.5都错的一塌糊涂,就o1对了,甚至一遍对啊!真的被惊到了
每日签到20刀
ustbgw可签到
这篇内容主要介绍了如何使用个人电脑和特定工具(如无痕浏览器、美国IP、接码网站等)来注册Google Voice(GV)账号。重点步骤包括:
- 准备工作:需要个人电脑、接码网站(推荐daisysms.com)、无痕浏览器、纯净美国IP注册的Gmail账号。
- 注册Gmail:使用无痕浏览器创建Gmail账号,建议跳过手机号验证以降低风控概率。
- 注册Google Voice:打开Google Voice页面,选择号码并使用接码网站获取验证码进行注册。
需要注意的是,该方法不适用于号商,且作者不承担法律责任,禁止违法使用。
本项目名为oaifree-helper,完全依赖Linuxdo始皇大神的服务,旨在更优雅地个性化访问new.oaifree站。项目包含直链登陆、用户管理、token池管理、车队管理等功能,无需服务器和域名。用户可通过唯一用户名登陆,自动分配sharetoken,支持组建token池和自动刷新token。项目还支持人机验证、用户注册、用量查询等,且无需改代码。主要功能包括一键直达始皇的镜像站、简易用户体系、直链登陆、token池管理等。项目完全依赖始皇的服务,无Linuxdo等级用户不必浪费时间部署。
// API 密钥和主机
const API_HOST = 'generativelanguage.googleapis.com';
const api_secret = "自定义apikey";
addEventListener('fetch', event => {
event.respondWith(handleRequest(event.request));
});
async function handleRequest(request) {
// 处理 OPTIONS 请求
if (request.method === 'OPTIONS') {
return new Response(null, {
headers: {
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Methods': 'GET, POST, PUT, DELETE',
'Access-Control-Allow-Headers': 'Content-Type, Accept, x-goog-api-key',
'Access-Control-Max-Age': '86400' // 缓存 OPTIONS 响应 1 天
},
status: 204
});
}
const url = new URL(request.url);
const path = url.pathname;
const keyParam = url.searchParams.get('key');
const apiKeyHeader = request.headers.get('x-goog-api-key');
let key = '';
if(keyParam) {
key = keyParam
} else if (apiKeyHeader) {
key = apiKeyHeader
}
console.log(key)
// API 密钥验证
if (key === '' || key !== api_secret) {
return new Response(JSON.stringify({ error: 'Unauthorized' }), {
status: 401,
headers: { 'Content-Type': 'application/json' }
});
}
// 获取 API 密钥数组
const API_KEYS = JSON.parse(await api_keys.get('API_KEYS') || '[]'); // 确保处理 API_KEYS 缺失的情况
// 如果没有配置 API Key数组, 直接使用 api_secret
let API_KEY = api_secret;
if (API_KEYS.length > 0) {
API_KEY = selectApiKey(API_KEYS);
}
// 记录使用的 API 密钥
console.log(`Using API KEY: ${API_KEY}`);
const newHeaders = new Headers(request.headers);
// 修改请求
url.hostname = API_HOST;
if (path.includes(":generateContent")) {
url.searchParams.set('key', API_KEY);
newHeaders.set('x-goog-api-key', API_KEY); // 设置新的请求头
}
if (path.includes(":streamGenerateContent")) {
newHeaders.set('x-goog-api-key', API_KEY); // 设置新的请求头
url.searchParams.set('key', API_KEY);
}
if (path.includes("models")) {
url.searchParams.set("key", API_KEY);
}
const modifiedRequest = new Request(url.toString(), {
method: request.method,
headers: newHeaders,
body: request.body,
redirect: 'follow'
});
try {
const response = await fetch(modifiedRequest);
return new Response(response.body, response);
} catch (error) {
return new Response(JSON.stringify({ error: error.message }), {
status: 500,
headers: { 'Content-Type': 'application/json' }
});
}
}
function selectApiKey(apiKeys) {
// 随机选择一个 API 密钥
const randomIndex = Math.floor(Math.random() * apiKeys.length);
return apiKeys[randomIndex];
}
论坛满多公益+推广的我都有试用,分享几个心得,
能使用的模型可能各不同,请参考附上的原帖或是站点内查看。
用 new-api 映射一下模型问题不大。不是恶意使用的话公益够用了:
AFF VoAPI演示站 13
响应3秒,公益每日签到 20刀 左右,缺点是馀额只有一天有效,没有缓冲日,等于每天要先签到才能用
AFF 益丰 API 9
L站帖 2,响应1.5秒,有每日签到大约 0.8 刀
AFF ShawnAPI 13
L站帖 7,响应0.8秒,有每日签到大约0.5 刀
AFF sm佬API 18
L站帖 3,响应1.2秒,没有每日签到,注册 10刀 + L站发福利
AFF gala API 6
L站帖 2,响应1.2秒,没有每日签到,注册 1 刀 + L站发福利
AFF kimoji API 6
L站帖 1,不太稳,但是佬友纯公益,有每日签到
AFF dev API 7
L站帖 1,响应2.5秒,注册 10 刀,有每日签到约 0.7 刀。
AFF jimsblog API 2
L站帖 6,响应3秒,馀额随便给,纯公益,但有时候 403。
L站二级以上 API
L站帖 14,响应5秒,没有站,佬友纯公益,key 随便填就能用。
AFF furry API 9
L站帖 2,响应2.5秒,有每日签到。猫娘佬友公益,请不要瑟瑟会封,但据佬友表示是可以翻译并发的。
这段内容主要介绍了一种改进的提示词方法,旨在通过更少的token获得更好的回答。建议在回答问题前先复述和分析问题,具体步骤包括:1. 复述问题;2. 理解确认;3. 思考过程;4. 自我评估。这种方法有助于确保回答直接针对原始问题,避免上下文过长导致的回答偏差。
Zerox OCR 是一个简单易用的工具,用于将文档(如PDF、Word、图片等)转换为Markdown格式,便于AI处理。它通过将文件转换为图像,然后使用GPT模型生成Markdown内容。Zerox支持多种文件格式,并提供Node和Python版本。用户可以选择维护格式以处理跨页表格等复杂布局。该工具还支持多种AI模型提供商,如OpenAI、Azure OpenAI等。
文章预测,随着人工智能的发展,未来几十年内能够写作的人将大幅减少。写作本质上是困难的,因为它需要清晰的思考,而这种能力正在被AI取代。这将导致社会分为会写作和不会写作的两类人,进而影响思考能力。作者认为,写作即思考,因此这种变化是危险的,可能导致社会出现会思考和不会思考的两类人。最终,作者强调,虽然技术进步使某些技能过时,但写作作为思考工具的重要性不容忽视。