52 私有链接
Zerox OCR 是一个简单易用的工具,用于将文档(如PDF、Word、图片等)转换为Markdown格式,便于AI处理。它通过将文件转换为图像,然后使用GPT模型生成Markdown内容。Zerox支持多种文件格式,并提供Node和Python版本。用户可以选择维护格式以处理跨页表格等复杂布局。该工具还支持多种AI模型提供商,如OpenAI、Azure OpenAI等。
文章预测,随着人工智能的发展,未来几十年内能够写作的人将大幅减少。写作本质上是困难的,因为它需要清晰的思考,而这种能力正在被AI取代。这将导致社会分为会写作和不会写作的两类人,进而影响思考能力。作者认为,写作即思考,因此这种变化是危险的,可能导致社会出现会思考和不会思考的两类人。最终,作者强调,虽然技术进步使某些技能过时,但写作作为思考工具的重要性不容忽视。
在测试版中,许多“chat completions”的参数尚不可用,具体包括:
Modalities(模态):仅支持文本,不支持图像。
Message types(消息类型):仅支持用户和助手的消息,不支持系统消息。
Streaming(流式传输):不支持。
Tools(工具):不支持工具、函数调用和响应格式参数。
其他:temperature、top_p 和 n 固定为 1,presence_penalty 和 frequency_penalty 固定为 0。
Assistants and Batch(助手和批量处理):不支持助手 API 或批量 API。
注册送1刀。
分享一家代理 API,可以使用OpenAI、Claude、Gemini、Suno、Luma等模型,价格低于官方价,非常实惠。
高性价比的AI模型Enterprise企业级API转发服务。
体验地址:api.uniapi.ai/register?aff=H…
随着信息技术的快速发展,网络安全问题日益突出,密码技术作为保障信息安全的核心手段,其重要性不断提升。海光CPU通过集成密码模块,提供了高性能、低成本、高安全性和高可靠性的密码技术解决方案,满足了复杂网络环境下的安全需求。海光CPU在密码运算性能、适用性、安全稳定性、兼容性以及成本效益方面具有显著优势,为信息安全提供了坚实保障。
海光信息在上海外滩大会见解论坛上展示了其在芯片底层安全方面的前沿技术,包括密码计算和机密计算。海光CPU内置密码模块,提供低成本高性能的安全解决方案,支持国密和美密算法。此外,海光通过机密计算技术,在云计算时代构筑了安全底座,确保数据在运行过程中的加密和安全。海光还提供了人工智能应用场景下的机密计算环境,保障大模型训练和推理的安全性。
海光CPU通过内置安全处理器和国密算法硬件加速模块,实现了TPCM可信计算平台,支持可信计算3.0。TPCM作为底层硬件基础,实现了可信度量根、可信存储根和可信报告根,全面支持国密标准,包括SM2、SM3、SM4等算法。该方案具有高效密码运算、无需额外硬件成本、高系统权限和强抗攻击能力等特点,适用于金融、政企办公、云服务平台等领域。
根据国家计算机病毒应急处理中心发布的《网络空间安全态势分析报告(2024)》,全球勒索病毒组织对中国机构的攻击数量同比增长100%。海光公司作为国产先进微处理器产业的推动者,通过十年深耕,成功研发出兼容x86指令集的海光CPU和人工智能加速器DCU,广泛应用于多个重要行业。海光CPU通过内置安全处理器和密码协处理器,实现了高性能密码运算和可信计算,为信息安全提供了强有力的保障。海光的产品已获得国家密码管理局的认证,并在多个领域得到广泛应用,为国产化信息安全提供了更优解。
wechat-article-exporter 是一个在线工具,用于批量导出微信公众号文章。它支持内嵌音视频的导出,无需搭建环境,能100%还原文章样式,并支持私有部署。主要功能包括搜索公众号、导出文章为HTML格式、批量导出文章、缓存数据减少请求次数等。用户可以通过微信公众平台注册账号并登录,搜索目标公众号后开始下载文章。项目目前支持部署到 Deno Deploy,未来计划加入签名验证机制以防止恶意使用。
在deno上部署代理
function error(msg: Error | string) {
return new Response(msg instanceof Error ? msg.message : msg, {
status: 403,
});
}
async function wfetch(url: string, opt: Record<string, string> = {}) {
if (!opt) {
opt = {};
}
const options: Record<string, any> = {
method: "GET",
headers: {
"User-Agent":
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.0.0 Safari/537.36",
},
};
if (opt.referer) {
options.headers["Referer"] = opt.referer;
}
return await fetch(url, options);
}
Deno.serve(async (req: Request) => {
if (req.method.toLowerCase() !== "get") {
return error("Method not allowed");
}
const origin = req.headers.get("origin")!;
const { searchParams } = new URL(req.url);
let url = searchParams.get("url");
if (!url) {
return error("url cannot empty");
}
url = decodeURIComponent(url);
console.log("proxy url:", url);
if (!/^https?:\/\//.test(url)) {
return error("url not valid");
}
const response = await wfetch(url);
return new Response(response.body, {
headers: {
"Access-Control-Allow-Origin": origin,
"Content-Type": response.headers.get("Content-Type")!,
},
});
});
原理就是访问https://api.claude.ai/api/organizations 4 , 如果活着会返回用户信息,另外,用户信息里面也记录了普通用户和pro计划用户的信息。
addEventListener('fetch', event => {
event.respondWith(handleRequest(event.request))
})
async function handleRequest(request) {
if (request.method === 'POST') {
const formData = await request.formData()
const sessionKeysInput = formData.get('sessionKeys')
if (!sessionKeysInput) {
return new Response(JSON.stringify({ error: '没有输入Session Keys' }), {
status: 400,
headers: { 'Content-Type': 'application/json' }
})
}
const sessionKeys = sessionKeysInput.split('\n').filter(key => key.trim() !== '')
let csvContent = '"SessionKey","Name","Capabilities","是否可用"\n'
for (const sessionKey of sessionKeys) {
try {
console.log(`处理session key: ${sessionKey}`)
const response = await fetch('https://api.claude.ai/api/organizations', {
headers: {
'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8',
'accept-language': 'en-US,en;q=0.9',
'cache-control': 'max-age=0',
'cookie': `sessionKey=${sessionKey}`,
'user-agent': 'Mozilla/5.0 (X11; Linux x86_64)',
'sec-fetch-mode': 'navigate',
'sec-fetch-site': 'none'
}
})
if (!response.ok) {
throw new Error(`HTTP错误! 状态: ${response.status}`)
}
const responseText = await response.text()
console.log(`响应: ${responseText}`)
if (responseText.toLowerCase().includes('unauthorized')) {
console.log(`无效的session key: ${sessionKey}`)
csvContent += `"${sessionKey}","无效","","否"\n`
continue
}
if (responseText.trim() === '') {
console.log(`session key无响应: ${sessionKey}`)
csvContent += `"${sessionKey}","无响应","","否"\n`
continue
}
const objects = JSON.parse(responseText)
for (const object of objects) {
const name = object.name
const capabilities = object.capabilities ? object.capabilities.join(';') : ''
if (!name) {
console.log(`在session key的响应中未找到名称: ${sessionKey}`)
continue
}
const escapedName = name.replace(/"/g, '""')
const escapedCapabilities = capabilities.replace(/"/g, '""')
csvContent += `"${sessionKey}","${escapedName}","${escapedCapabilities}","是"\n`
}
} catch (error) {
console.error(`处理session key时发生错误: ${sessionKey}`, error)
csvContent += `"${sessionKey}","处理错误","${error.message}","否"\n`
}
}
return new Response(csvContent, {
headers: { 'Content-Type': 'text/csv' }
})
} else {
return new Response(`
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Session Key 批量测试</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet">
<style>
body {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Helvetica', 'Arial', sans-serif;
line-height: 1.6;
color: #333;
background-color: #f5f5f7;
}
.container {
max-width: 800px;
margin: 0 auto;
padding: 40px 20px;
}
h1 {
color: #1d1d1f;
font-size: 48px;
font-weight: 600;
letter-spacing: -0.003em;
margin-bottom: 40px;
}
.form-container {
background-color: #fff;
border-radius: 18px;
padding: 30px;
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}
textarea.form-control {
height: 200px;
border: 1px solid #d2d2d7;
border-radius: 12px;
font-size: 16px;
resize: vertical;
}
.btn-primary {
background-color: #0071e3;
border-color: #0071e3;
border-radius: 22px;
font-size: 17px;
font-weight: 400;
letter-spacing: -0.022em;
padding: 12px 24px;
transition: all 0.3s ease;
}
.btn-primary:hover {
background-color: #0077ed;
border-color: #0077ed;
}
</style>
</head>
<body>
<div class="container">
<h1 class="text-center">Claude Session Key 批量测试</h1>
<div class="form-container">
<form id="sessionKeyForm">
<div class="mb-3">
<textarea class="form-control" name="sessionKeys" placeholder="请输入Session Keys,每行一个" required></textarea>
</div>
<button type="submit" class="btn btn-primary w-100">处理</button>
</form>
</div>
</div>
<!-- Error Modal -->
<div class="modal fade" id="errorModal" tabindex="-1" aria-labelledby="errorModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="errorModalLabel">错误</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<p id="errorMessage"></p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">关闭</button>
</div>
</div>
</div>
</div>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js"></script>
<script>
document.getElementById('sessionKeyForm').addEventListener('submit', async (e) => {
e.preventDefault();
const form = e.target;
const formData = new FormData(form);
try {
const response = await fetch('/', {
method: 'POST',
body: formData
});
if (!response.ok) {
const errorData = await response.json();
throw new Error(errorData.error || '处理请求时发生错误');
}
const blob = await response.blob();
const url = window.URL.createObjectURL(blob);
const a = document.createElement('a');
a.style.display = 'none';
a.href = url;
a.download = 'session_keys_result.csv';
document.body.appendChild(a);
a.click();
window.URL.revokeObjectURL(url);
} catch (error) {
showErrorModal(error.message);
}
});
function showErrorModal(message) {
document.getElementById('errorMessage').textContent = message;
new bootstrap.Modal(document.getElementById('errorModal')).show();
}
</script>
</body>
</html>
`, {
headers: { 'Content-Type': 'text/html; charset=utf-8' }
})
}
}
Silo 是一个基于 SiliconCloud API 的纯前端应用,支持多模型对话和文生图功能。它具有快速响应、模型参数调整、余额自动刷新等特点,并提供浏览器插件和 Web 端访问方式。用户可以方便地添加 Google Gemini、Claude、OpenAI 等模型,且无需服务端支持。体验密钥是公开的,但请不要滥用,建议自行部署时修改默认密钥。项目采用 MIT 许可证,完全免费,欢迎支持。
网友来信询问如何提高英语水平,特别是记忆单词和语法的问题。邮件回复建议通过“使用”而非“学习”的方式来学英语,强调听说优于读写,并建议通过大量听力输入和日常对话练习来提高语言感知能力。同时,建议正确发音和朗读,通过阅读提升词汇量,并结合实际使用场景来学习语法。最终目标是找到适合自己的学习路径,通过实践提高英语水平。
这篇内容主要介绍了如何自部署Hugging Face的免费API,并将其转换为OpenAI格式,以便在newapi中使用。具体步骤包括注册Cloudflare和Hugging Face并申请API Key,然后将代码部署到Cloudflare Workers中。此外,还提供了Docker镜像的拉取命令,方便用户快速部署。该API每天有1000条的免费额度,支持Qwen2.5 70B等模型。
这篇内容主要介绍了如何自部署Hugging Face的免费API,并将其用于Qwen2.5 70B等模型。作者提供了Docker镜像和运行命令,并说明了如何在国内通过Cloudflare Workers部署,以解决无法直接访问Hugging Face的问题。此外,还提到了如何获取和使用API密钥,以及如何在one-api/new-api中使用这些模型。最后,作者讨论了模型的可用性和一些优化建议。