52 私有链接
总结:在众多免费的模型中,作者认为Google的google/gemma-2-9b-it模型最为地道和准确。特别是它能自动将输入中的“\n”转换为换行符,显得非常贴心。作者还提到这些模型来自硅基流动,并分享了一个邀请链接。此外,其他用户也推荐了不同的模型和工具,如deepl、Gemini Flash、Grok-beta等,大家对这些工具的评价和使用体验各有不同。
该内容介绍了一个可以一键免费部署到多个平台的 ChatGPT API 后端服务,支持 Vercel、Cloudflare Workers、Docker、Render 等平台。该服务支持多种模型,如 GPT4o mini、Claude 3 Haiku、Llama 3.1 70B、Mixtral 8x7B,并且所有模型均由 DuckDuckGo 匿名提供。用户可以通过简单的步骤在不同平台上部署,并使用第三方应用如 ChatNextWeb 调用接口。部署过程中需要注意 DDG API 的并发限制,推荐使用 Vercel 进行部署。
DDG-Chat 是一个支持多种平台的 ChatGPT API 后端项目,支持 Vercel、Cloudflare Workers、Docker、Render 等部署方式。它支持多种模型,如 GPT4o mini、Claude 3 Haiku、Llama 3.1 70B、Mixtral 8x7B,并由 DuckDuckGo 匿名提供。项目提供一键部署和手动部署选项,并建议使用第三方 ChatGPT 应用调用接口。Docker 版本已优化至 52MB,支持命令行和 docker-compose 构建。
本文介绍了如何在VPS上自动进行Github提交star和commit,以达到养号的目的。主要步骤包括:
- 安装Python和依赖:更新系统并安装Python 3和pip,创建虚拟环境并安装schedule和requests库。
- 编写脚本:使用ChatGPT生成的代码,实现自动star和commit,并配置Telegram通知。
- 测试脚本:在虚拟环境中手动运行脚本,确保其正常执行。
- 配置cron:设置cron任务,使脚本在系统重启后自动运行。
- 验证自动启动:重启VPS并检查脚本是否在后台运行,查看日志文件确认任务执行情况。
整个过程简单易行,适合个人自用,但需注意避免滥用导致账号被封。
雷鲸小站-天翼云盘交流站
https://www.leijing.xyz/
内容主要介绍了如何通过Chrome浏览器的自定义网站搜索功能,来替换地址栏的默认搜索,以改善使用体验。具体步骤包括打开Chrome的搜索引擎设置,添加自定义搜索,设置快捷字词和网址格式,从而在地址栏快速进行特定网站的搜索。此外,还提到了其他浏览器如Edge的使用情况和一些用户的反馈。
xAI 正式推出其API 开发者能够基于其 Grok 基础模型进行开发 在 2024 年底之前的公测阶段,每位开发者每月将获得 25 美元的免费 API 额度。 公测版本首先推出了一个新的模型预览:grok-beta,具有 128k上下文长度,并支持功能调用和系统提示。 下周将发布 Grok 的多模态版本,支持图像输入与文本输入。 兼容性和简易迁移: xAI 的 REST API 完全兼容 OpenAI 和 Anthropic 的 API,迁移过程十分简便。 开发者只需在 OpenAI SDK 中将 base_url 更改为 [https://api.x.ai/v1 20]并使用在 [http://console.x.ai 51] 上生成的 xAI API 密钥,即可开始使用 Grok 模型。
openai-captcha-detection 是一个利用 OpenAI 的 GPT-4 模型进行验证码识别的工具。它能够识别各种类型的验证码,并提供简单易用的 API 接口,方便在其他项目中集成使用。项目需要 Python 3.7 及以上版本和 pip 包管理工具。用户可以通过克隆仓库、设置 API 密钥、安装依赖包并运行脚本来使用该工具。未来计划包括提升识别精度、增加更多 API 支持和提供更便捷的命令行界面。项目遵循 MIT 许可证。
这段内容主要讨论了用户与ChatGPT的对话历史和用户画像的生成。用户发现ChatGPT会根据对话内容为其打标签,例如提到茶垢清洗后被打上“喜欢喝茶”的标签。用户们讨论了这种标签化的作用,猜测可能与个性化推荐算法有关,并提到这种功能类似于记忆或上下文理解。最后,有人提到可以根据这些标签让ChatGPT描述用户,甚至可能比用户自己更了解自己。
HuggingChatAPI 是一个逆向 HuggingChat 并提供 OpenAI 兼容 API 接口的工具。用户可以通过访问 HuggingChat 官网并登录,从浏览器 Cookie 中获取 hf-chat 值作为 Authorization。API 支持获取模型列表和聊天补全功能,并提供免费反代地址供国内用户使用。部署时需确保服务器能访问海外网络,支持 Docker 和 Koyeb 一键部署。
该项目提供了一个适配OpenAI请求方式的Demo,用户可以在HuggingFace上创建所需的模型对话,并通过浏览器Cookie中的hf-chat值作为Authorization请求。支持的模型包括meta-llama、CohereForAI、Qwen、nvidia等。项目地址和Demo访问链接已提供,用户可以给原作者点赞支持。此外,内容中还提到了一些其他相关话题和资源。
deeplx接口变了,这是修改后的代码适配。
内容主要介绍了如何使用DeepLX-Python项目来搭建一个免费的DeepL API服务。具体步骤包括克隆项目仓库、构建Docker镜像并运行容器。此外,还提到了社区的感谢和分享,以及一些相关话题和资源。总结来说,这是一个关于如何利用DeepLX-Python实现免费DeepL API的教程和社区讨论。
本项目是一个开源项目,旨在将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一样。