Starter examples for using Next.js and the Vercel AI SDK with Ollama and ModelFusion.
MIT License
This starter example shows how to use Next.js, the Vercel AI SDK, Ollama and ModelFusion to create a ChatGPT-like AI-powered streaming chat bot.
ollama pull llama2:chat
(reference)git clone https://github.com/lgrammel/modelfusion-ollama-nextjs-starter.git
npm install
npm run dev
app/api/chat/route.ts
import { ModelFusionTextStream, asChatMessages } from "@modelfusion/vercel-ai";
import { Message, StreamingTextResponse } from "ai";
import { ollama, streamText } from "modelfusion";
export const runtime = "edge";
export async function POST(req: Request) {
const { messages }: { messages: Message[] } = await req.json();
// Use ModelFusion to call Ollama:
const textStream = await streamText({
model: ollama.ChatTextGenerator({ model: "llama2:chat" }).withChatPrompt(),
prompt: {
system:
"You are an AI chat bot. " +
"Follow the user's instructions carefully.",
// map Vercel AI SDK Message to ModelFusion ChatMessage:
messages: asChatMessages(messages),
},
});
// Return the result using the Vercel AI SDK:
return new StreamingTextResponse(
ModelFusionTextStream(
textStream,
// optional callbacks:
{
onStart() {
console.log("onStart");
},
onToken(token) {
console.log("onToken", token);
},
onCompletion: () => {
console.log("onCompletion");
},
onFinal(completion) {
console.log("onFinal", completion);
},
}
)
);
}