workflows-ts
workflows-ts copied to clipboard
feat: vercel/ai binding
basic example:
import { createWorkflow, workflowEvent } from "@llama-flow/core";
import { mergeToWorkflow } from "@llama-flow/core/ai";
import { streamText } from "ai";
import { openai } from "@ai-sdk/openai";
const chatWorkflow = createWorkflow();
const startChatEvent = workflowEvent<string>();
const stopChatEvent = workflowEvent();
chatWorkflow.handle([startChatEvent], async () => {
const result = streamText({
model: openai("gpt-4.1"),
prompt: "You are a helpful assistant.",
});
await mergeToWorkflow(result.fullStream);
return stopChatEvent.with();
});
export { startChatEvent, stopChatEvent, chatWorkflow };
app.post("/chat", async (context) => {
const { messages } = await context.req.json();
const { stream, sendEvent } = chatWorkflow.createContext();
sendEvent(startChatEvent.with(messages));
return new Response(dataStream(stream));
});
// frontend
import { useChat } from 'ai/react'
useChat({
api: '/chat'
})
npm i https://pkg.pr.new/run-llama/llama-flow/@llama-flow/core@76
npm i https://pkg.pr.new/run-llama/llama-flow/@llama-flow/llamaindex@76
commit: da20c69
Deployed at https://llamaindex-ts-3ftacur2p.pr.staging.llamaindex.ai