惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Security Latest
Security Latest
Recent Commits to openclaw:main
Recent Commits to openclaw:main
O
OpenAI News
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
L
LINUX DO - 最新话题
N
News | PayPal Newsroom
S
Secure Thoughts
The Last Watchdog
The Last Watchdog
Help Net Security
Help Net Security
V2EX - 技术
V2EX - 技术
W
WeLiveSecurity
T
The Exploit Database - CXSecurity.com
D
Darknet – Hacking Tools, Hacker News & Cyber Security
Hacker News - Newest:
Hacker News - Newest: "LLM"
博客园_首页
博客园 - 司徒正美
The Cloudflare Blog
D
DataBreaches.Net
Jina AI
Jina AI
L
LINUX DO - 热门话题
宝玉的分享
宝玉的分享
Project Zero
Project Zero
量子位
Spread Privacy
Spread Privacy
Cisco Talos Blog
Cisco Talos Blog
J
Java Code Geeks
T
Troy Hunt's Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
N
News and Events Feed by Topic
PCI Perspectives
PCI Perspectives
Hugging Face - Blog
Hugging Face - Blog
T
Threat Research - Cisco Blogs
博客园 - 聂微东
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
T
Threatpost
阮一峰的网络日志
阮一峰的网络日志
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
T
Tailwind CSS Blog
AI
AI
C
CXSECURITY Database RSS Feed - CXSecurity.com
雷峰网
雷峰网
酷 壳 – CoolShell
酷 壳 – CoolShell
Apple Machine Learning Research
Apple Machine Learning Research
Attack and Defense Labs
Attack and Defense Labs
V
V2EX
人人都是产品经理
人人都是产品经理
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
有赞技术团队
有赞技术团队
博客园 - 三生石上(FineUI控件)
Cyberwarzone
Cyberwarzone

Wslll

手搓一个ios记账应用:快捷指令、PWA应用、AI分析 一个AnthropicToOpenai的本地运行的API转换脚本(用于ClaudeCode等) 一种针对长篇幅学术文章的特征提取循环翻译模式 开源分享:经过运行验证的自动SNP Calling脚本 使用glnexus进行joint call的一些经验 wslll blog:基于Python的自托管博客应用 wslll blog的介绍以及2025年不稳定运行的原因 使用SimpleM计算有效检验数量 期刊发布:基于重测序的原始群体和改良群体的遗传多样性研究 期刊发布:遗传改良对世界水产养殖业发展的推动作用 你好,世界!
使用cloudflare worker转发openai api并设置关键词屏蔽
wslll · 2023-07-07 · via Wslll

cloudflare的worker功能可以用与转发一些API的调用需求,通过这个功能可以实现使用自己的域名转发调用某些API的需求。 这里分享两个worker.js代码,一个可以实现将APIKey进行自定义变换后转发,另一个可以自定义一些关键词或者敏感词汇,然后再调用Openai API的过程中拦截含有屏蔽词的调用请求。

自定义Key转发

这里的代码中,在openai-api处填写官方api,前面填写自定义字符串即可设定不一样的api实现转发调用。如果不设置任何自定义api,也可以直接使用官方apikey进行调用。

const OPENAI_URL = 'https://api.openai.com';

const keyMap = {
  '自定义api名1': 'openai-api1',
  '自定义api名2': 'openai-api2',
  // ...更多映射关系...
};

addEventListener('fetch', event => {
  event.respondWith(handleRequest(event.request))
})

async function handleRequest(request) {
  const url = new URL(request.url);
  url.host = OPENAI_URL.replace(/^https?:\/\//, '');

  const modifiedRequest = new Request(url.toString(), {
    headers: new Headers(request.headers),
    method: request.method,
    body: request.body,
    redirect: 'follow'
  });

  const authHeader = modifiedRequest.headers.get('Authorization');
  if (authHeader) {
    for (const customKey in keyMap) {
      if (authHeader.includes(customKey)) {
        modifiedRequest.headers.set('Authorization', authHeader.replace(customKey, keyMap[customKey]));
        break;
      }
    }
  }

  const response = await fetch(modifiedRequest);
  const modifiedResponse = new Response(response.body, response);

  // 添加允许跨域访问的响应头
  modifiedResponse.headers.set('Access-Control-Allow-Origin', '*');

  return modifiedResponse;
}

关键词屏蔽版本

该版本的可以设定无限个关键词,自定义设置,然后当请求调用是出现了这些关键词,会直接返回拒绝调用的消息,不消耗Toekn。

const OPENAI_URL = 'https://api.openai.com';

// 将敏感词汇放在一个数组中
const sensitiveWords = ['关键词1', '关键词2', '更多关键词'];

addEventListener('fetch', event => {
  event.respondWith(handleRequest(event.request));
});

async function handleRequest(request) {
  const url = new URL(request.url);
  url.host = OPENAI_URL.replace(/^https?:\/\//, '');

  const requestBody = await request.clone().text();

  // 检查请求体中是否包含屏蔽词
  if (sensitiveWords.some(word => requestBody.includes(word))) {
    return new Response('请求包含敏感信息,终止会话。', { status: 400 });
  }

  const modifiedRequest = new Request(url.toString(), {
    headers: request.headers,
    method: request.method,
    body: request.body,
    redirect: 'follow'
  });

  const response = await fetch(modifiedRequest);
  const modifiedResponse = new Response(response.body, response);

  // 添加允许跨域访问的响应头
  modifiedResponse.headers.set('Access-Control-Allow-Origin', '*');

  return modifiedResponse;
}

Github地址:cloudflare-transfer-api