JavaScript 求助,如何把自己的 URL 填进去

最近我在用一个实用的翻译油猴脚本,它按需翻译,不像「沉浸翻译」把整个页面翻译,这个小巧灵活的特性可以节省资源,尤其在使用 AI 翻译的时候。

但是遇到了一个的障碍。这个脚本只支持 OpenAI 官方和其他少数几个 API 地址,这就让我有点小失望了。在 Issue 区也看到有小伙伴提过这个问题,但一直没有解决。我在想,如果能把自己的 API 地址填进去就完美了!

自己动手尝试了修改源码,让它支持自己的 API 地址。但是不起作用

const customGPT = {
    //openai: "https://api.openai.com/v1/chat/completions",
    openai: "https://api.myopenai.org",

所以向各位求助,应该在源码的哪个部分进行修改,才能把自己的 OpenAI API 填进去,并让代码正常工作。

如果它调用上游 api 的话,可能就不是改代码了,你要去上游改

你看下它脚本的 378 行,不就是自定义么?

我改了这个地方,翻译失效了

里面还有个 自定义 GPT 地址

这后面有一个对 API 地址的验证,修改了地址结果过不了验证。(脚本 line 378~401)

// 自定义 GPT地址
const customGPT = {
    openai: "https://api.openai.com/v1/chat/completions",
    setGPTUrl(model, url) {
        url = url.trim();   // 去除首尾空格
        // 解析 url,确保为 cloudflare 代理或 openai 官方地址
        let cloudflareReg = /https:\/\/gateway.ai.cloudflare.com\/v1\/\w+\/\w+\/openai\/chat\/completions/;
        if (url === this.openai
            || url === "https://api.chatanywhere.com.cn/v1/chat/completions"
            || cloudflareReg.test(url)
            // 是 127.0.0.1 或 localhost
            || url.indexOf("127.0.0.1") !== -1
            || url.indexOf("localhost") !== -1
        ) {
            GM_setValue(model + '_url', url)
            return true
        }
        return false
    },
    getGPTUrl(model) {
        if (!model) model = util.getValue('model');
        return GM_getValue(model + '_url', this.openai)
    }
}

你尝试在上面的 url = url.trim(); // 去除首尾空格 下面加这样两行试试看

GM_setValue(model + '_url', url)
return true

谢谢。
写入这两行代码后修改配置不报错了,但依然无法翻译。

想放弃了,刚才研究了一下「沉浸翻译」,可以设置为只翻译选择的段落