获取免费的chatgpt api

获取免费的chatgpt api

下面是一个简单的教程:

1. 注册val.town 账号

添加一个项目

并添加如下代码

import { OpenAI } from "https://esm.town/v/std/openai";

export default async function(req: Request): Promise<Response> {
  if (req.method === "OPTIONS") {
    return new Response(null, {
      headers: {
        "Access-Control-Allow-Origin": "*",
        "Access-Control-Allow-Headers": "*",
      },
      status: 204,
    });
  }
  const openai = new OpenAI();

  try {
    var body = await req.json();
  } catch (e) {
    var search = (new URL(req.url)).searchParams;
    body = {
      "messages": [{ "role": "user", "content": search.get("q") || "hello" }],
      "temperature": 0.5,
      "presence_penalty": 0,
      "frequency_penalty": 0,
      "top_p": 1,
      stream: true,
      model: "gpt-4-turbo",
    };
  }

  const stream = await openai.chat.completions.create(body);

  if (!body.stream) {
    return new Response(JSON.stringify(body), {
      headers: {
        "Access-Control-Allow-Origin": "*",
        "Access-Control-Allow-Headers": "*",
        "Content-Type": "application/json; charset=UTF-8",
      },
    });
  }

  const { readable, writable } = new TransformStream();
  const my_stream_writer = writable.getWriter();
  var reader = stream.toReadableStream().getReader();
  var totalText = "";
  const decoder = new TextDecoder("utf-8", { stream: true });
  var encoder = new TextEncoder();
  (async () => {
    while (true) {
      const { done, value } = await reader.read();
      if (done) break;
      totalText += decoder.decode(value, { stream: true });
      var msgs = totalText.split("\n");
      totalText = msgs.pop();
      for (let i in msgs) {
        my_stream_writer.write(encoder.encode(`data: ${msgs[i]}\n\n`));
      }
      await new Promise((r) => {
        setTimeout(r, 20);
      });
    }
    my_stream_writer.close();
  })();

  return new Response(readable, {
    headers: {
      "Access-Control-Allow-Origin": "*",
      "Access-Control-Allow-Headers": "*",
      "Content-Type": "text/event-stream; charset=UTF-8",
    },
  });
}

Save&preview

即可

2.复制api地址

API

这个地址就是我们后面在软件中使用的API地址,无需用户名和密码验证。

3.在APP中使用

以nextchat为例,下载地址ChatGPTNextWeb

把上面获取到的地址填入此处即可使用免费的chatgpt api了