@travisennis/acai-brainstorm
Version:
A set of brainstorming agents and tools to use with AI.SDK.
54 lines (47 loc) • 1.29 kB
text/typescript
import type { LanguageModel } from "ai";
import {
generateInitialIdeas,
printTree,
type TreeNode,
TreeNodeImpl,
} from "./utils.ts";
export * from "./bigMindMapping.ts";
export * from "./index.ts";
export * from "./reverseBrainstorming.ts";
export * from "./roleStorming.ts";
export * from "./scamper.ts";
export * from "./sixHats.ts";
export * from "./starBursting.ts";
export * from "./tool.ts";
export * from "./types.ts";
export * from "./utils.ts";
// Main function
export async function brainstorm({
model,
query,
strategy,
n = 5,
}: {
model: LanguageModel;
query: string;
strategy: ({
model,
idea,
}: { model: LanguageModel; idea: string }) => Promise<TreeNode>;
n: number | undefined;
}): Promise<string> {
// Initialize the root node with the user's query
const rootRb = new TreeNodeImpl(query);
// Generate initial ideas
const initialIdeas = await generateInitialIdeas({ model, query, n });
console.info(initialIdeas.length);
// Process each initial idea
for (const idea of initialIdeas) {
const childNode = await strategy({ model, idea });
rootRb.addChild(childNode);
}
// Print and return the tree
return printTree(rootRb);
}
// for more:
// https://www.lucidchart.com/blog/effective-brainstorming-techniques