Aprendizagem pessoal com IA
e orientação prática

Coleção de inversão de macromodelo de diálogo livre para interfaces de API

Login gratuito do GPT3.5 na API

https://github.com/missuo/FreeGPT35


https://github.com/aurora-develop/aurora

https://github.com/Dalufishe/freegptjs

https://github.com/PawanOsman/ChatGPT

https://github.com/nashsu/FreeAskInternet

https://github.com/aurorax-neo/free-gpt3.5-2api

https://github.com/aurora-develop/free-gpt3.5-2api

https://github.com/LanQian528/chat2api

https://github.com/k0baya/FreeGPT35-Glitch

https://github.com/cliouo/FreeGPT35-Vercel

https://github.com/hominsu/freegpt35

https://github.com/xsigoking/chatgpt-free-api

https://github.com/skzhengkai/free-chatgpt-api

https://github.com/aurora-develop/aurora-glitch (usando recursos de falha)

https://github.com/fatwang2/coze2openai (COZE para API, GPT4)

 

Modelo doméstico Reverso

pesquisa em profundidade(DeepSeek) Interface para API deepseek-free-api

Interface do Moonshot AI (Kimi.ai) com a API kimi-free-api

estrelas saltadoras (Leapfrog Ask StepChat) Interface para API API sem etapas

Ali Tongyi (Qwen) Interface para API qwen-free-api

ZhipuAI (discurso intelectualmente estimulante) Interface para API glm-free-api

Meta AI (metaso) Interface para API metaso-free-api

Byte Jump (Beanbag) Interface para API doubao-free-api

Byte Jump (ou seja, Dream AI) Interface para API jimeng-free-api

Interface Spark para API spark-free-api

Interface MiniMax (Conch AI) para API hailuo-free-api

Interface Emohaa para API emohaa-free-api

Programa sem login com interface de bate-papo

https://github.com/Mylinde/FreeGPT

 

O código de trabalho para cloudflare, amarre seu próprio nome de domínio para jogar:

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

função assíncrona handleRequest(request) {
// Certifique-se de que a solicitação seja uma solicitação POST e que o caminho esteja correto
Se (request.method === "POST" && new URL(request.url).pathname === "/v1/chat/completions") {
const url = 'https://multillm.ai-pro.org/api/openai-completion'; // endereço da API de destino
const headers = new Headers(request.headers);

// Adicione ou modifique os cabeçalhos conforme necessário
headers.set('Content-Type', 'application/json');

// Obter o corpo da solicitação e analisar o JSON
const requestBody = await request.json();
const stream = requestBody.stream; // obtém o argumento stream

// Construir uma nova solicitação
const newRequest = new Request(url, {
método: 'POST',
cabeçalhos: cabeçalhos,
body: JSON.stringify(requestBody) // use o corpo modificado
});

tente {
// Enviar uma solicitação para a API de destino
const response = await fetch(newRequest);

// Determinar o tipo de resposta com base no parâmetro de fluxo
if (stream) {
// Tratamento de respostas de fluxo contínuo
const { readable, writable } = new TransformStream();
response.body.pipeTo(writable);
return new Response(readable, {
cabeçalhos: response.headers
});
} else {
// Resposta de retorno normal
return new Response(response.body, {
status: response.status,
cabeçalhos: response.headers
});
}
} catch (e) {
// Se a solicitação falhar, retorne uma mensagem de erro
return new Response(JSON.stringify({ error: 'Unable to reach the backend API' }), { status: 502 });
}
} else {
// Retorna um erro se o método de solicitação não for POST ou se o caminho estiver incorreto.
return new Response('Not found', { status: 404 });
}
}

Exemplo de POST:

curl --location 'https://ai-pro-free.aivvm.com/v1/chat/completions' \
--header 'Content-Type: application/json' \
--data '{
"modelo": "gpt-4-turbo".
"messages": [
{
"role": "user", "content": "Why Lu Xun Beat Zhou Shuren" (Por que Lu Xun venceu Zhou Shuren)
}],
"stream": true
}'

 

Adicione um código de pseudofluxo (a saída será mais lenta):

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

função assíncrona handleRequest(request) {
Se (request.method === "OPTIONS") {
return new Response(null, {
cabeçalhos: {
'Access-Control-Allow-Origin': '*',
"Access-Control-Allow-Headers": '*'
}, status: 204
})
}
// Certifique-se de que a solicitação seja uma solicitação POST e que o caminho esteja correto
Se (request.method === "POST" && new URL(request.url).pathname === "/v1/chat/completions") {
const url = 'https://multillm.ai-pro.org/api/openai-completion'; // endereço da API de destino
const headers = new Headers(request.headers);

// Adicione ou modifique os cabeçalhos conforme necessário
headers.set('Content-Type', 'application/json');

// Obter o corpo da solicitação e analisar o JSON
const requestBody = await request.json();
const stream = requestBody.stream; // obtém o argumento stream

// Construir uma nova solicitação
const newRequest = new Request(url, {
método: 'POST',
cabeçalhos: cabeçalhos,
body: JSON.stringify(requestBody) // use o corpo modificado
});

tente {
// Enviar uma solicitação para a API de destino
const response = await fetch(newRequest);

// Determinar o tipo de resposta com base no parâmetro de fluxo
if (stream) {
const originalJson = await response.json(); // leia os dados completos de uma só vez
// Criar um fluxo legível
const readableStream = new ReadableStream({
start(controller) {
// Enviar dados iniciais
const startData = createDataChunk(originalJson, "start");
controller.enqueue(new TextEncoder().encode('data: ' + JSON.stringify(startData) + '\n\n'));

// Supondo que vários pedaços de dados sejam processados e enviados de acordo com o originalJson.
// Por exemplo, para simular o envio de dados em lotes
const content = originalJson.choices[0].message.content; // presume que esse é o conteúdo a ser enviado
const newData = createDataChunk(originalJson, "data", content);
controller.enqueue(new TextEncoder().encode('data: ' + JSON.stringify(newData) + '\n\n'));

// Enviar dados finais
const endData = createDataChunk(originalJson, "end");
controller.enqueue(new TextEncoder().encode('data: ' + JSON.stringify(endData) + '\n\n'));

controller.enqueue(new TextEncoder().encode('data: [DONE]'));
// Marcar o fim do fluxo
controller.close();
}
});
return new Response(readableStream, {
cabeçalhos: {
'Access-Control-Allow-Origin': '*',
"Access-Control-Allow-Headers": '*',
'Content-Type': 'text/event-stream',
'Cache-Control': 'no-cache',
'Conexão': 'keep-alive'
}
});
} else {
// Resposta de retorno normal
return new Response(response.body, {
status: response.status,
cabeçalhos: response.headers
});
}
} catch (e) {
// Se a solicitação falhar, retorne uma mensagem de erro
return new Response(JSON.stringify({ error: 'Unable to reach the backend API' }), { status: 502 });
}
} else {
// Retorna um erro se o método de solicitação não for POST ou se o caminho estiver incorreto.
return new Response('Not found', { status: 404 });
}
}

// Criar diferentes blocos de dados com base no tipo
function createDataChunk(json, type, content = {}) {
switch (type) {
Caso "start".
retornar {
id: json.id,
objeto: "chat.completion.chunk",
created: json.created,
modelo: json.model,
escolhas: [{ delta: {}, índice: 0, finish_reason: null }]
};
case "data".
retornar {
id: json.id,
objeto: "chat.completion.chunk",
created: json.created,
modelo: json.model,
escolhas: [{ delta: { content }, index: 0, finish_reason: null }]
};
Caso "end".
retornar {
id: json.id,
objeto: "chat.completion.chunk",
created: json.created,
modelo: json.model,
escolhas: [{ delta: {}, index: 0, finish_reason: 'stop' }]
};
padrão.
retornar {};
}
}

Não pode ser reproduzido sem permissão:Chefe do Círculo de Compartilhamento de IA " Coleção de inversão de macromodelo de diálogo livre para interfaces de API

Chefe do Círculo de Compartilhamento de IA

O Chief AI Sharing Circle se concentra no aprendizado de IA, fornecendo conteúdo abrangente de aprendizado de IA, ferramentas de IA e orientação prática. Nosso objetivo é ajudar os usuários a dominar a tecnologia de IA e explorar juntos o potencial ilimitado da IA por meio de conteúdo de alta qualidade e compartilhamento de experiências práticas. Seja você um iniciante em IA ou um especialista sênior, este é o lugar ideal para adquirir conhecimento, aprimorar suas habilidades e realizar inovações.

Entre em contato conosco
pt_BRPortuguês do Brasil