这货其实已经发布有段时间了,但,效果嘛,差强人意。可人家免费啊,还自带 Workers 调用,省去鉴权若干代码,自个儿绑个域名,每分钟 100次,美滋滋~
以下代码配套「哔哔广场」食用,当然也可自行折腾。
新建 Cloudflare Workers 丢入以下代码保存并绑定域名,填入广场设置处即可~
import { Ai } from './vendor/@cloudflare/ai.js';
export default {
async fetch(request, env, ctx) {
const jsonheaders = {
"content-type": "text/event-stream",
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Methods': "*",
'Access-Control-Allow-Headers': "*",
'Access-Control-Max-Age': '86400',
};
const url = new URL(request.url);
const query = decodeURIComponent(url.searchParams.get('q'));
const ai = new Ai(env.AI, { sessionOptions: { ctx: ctx } });
let chat = {
messages: [
{ role: 'system', content: 'You are a helpful and responsive assistant, you answer questions directly and provide instruction unless told otherwise.Respond in Chinese.' },
{ role: 'user', content: query }
]
};
const stream = await ai.run(
"@cf/mistral/mistral-7b-instruct-v0.1",
{ messages: chat.messages, stream: true }
);
return new Response(stream,
{ headers: jsonheaders, }
);
}
}
以上代码的提示词可以自己更换。
其中文本生成的模型有这几种可以设定:
@cf/meta/llama-2-7b-chat-fp16
@cf/mistral/mistral-7b-instruct-v0.1
@cf/meta/llama-2-7b-chat-int8