From 018a30fdd23453301b6978945c035725f3d08f52 Mon Sep 17 00:00:00 2001 From: Wlad Paiva Date: Sat, 28 Oct 2023 10:56:05 -0300 Subject: [PATCH 1/7] WIP --- bun.lockb | Bin 538430 -> 549887 bytes package.json | 5 ++- src/aibitat.ts | 4 +-- test.tsx | 89 +++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 95 insertions(+), 3 deletions(-) create mode 100644 test.tsx diff --git a/bun.lockb b/bun.lockb index df80d25a349313ace16f25d4ffd0bdcbb97d3bee..e1ebfbbeba233bebd33fa188ddc7b43ff15b50d1 100755 GIT binary patch delta 114948 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%0Dk@%Fw<>dOdZF?k|6uX>2aCr)SoFVBCABMJ4;C?m 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 delta 108057 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 diff --git a/package.json b/package.json index a4bd6b3..ebe1d25 100644 --- a/package.json +++ b/package.json @@ -55,9 +55,12 @@ "@inquirer/prompts": "^3.2.0", "chalk": "^5.3.0", "debug": "^4.3.4", + "ink": "^4.4.1", + "ink-spinner": "^5.0.0", "langchain": "^0.0.169", "node-html-markdown": "^1.3.0", - "openai": "^4.11.1" + "openai": "^4.11.1", + "react": "^18.2.0" }, "nano-staged": { "*.{js,jsx,json,yml,yaml,css,ts,tsx,md,mdx}": "prettier --write" diff --git a/src/aibitat.ts b/src/aibitat.ts index 80f8660..70197b6 100644 --- a/src/aibitat.ts +++ b/src/aibitat.ts @@ -90,9 +90,9 @@ type Message = Route & { /** * A chat message that is saved in the history. */ -type Chat = Omit & { +export type Chat = Omit & { content?: string - state: 'success' | 'interrupt' | 'error' + state: 'success' | 'interrupt' | 'error' | 'loading' } /** diff --git a/test.tsx b/test.tsx new file mode 100644 index 0000000..443ecfd --- /dev/null +++ b/test.tsx @@ -0,0 +1,89 @@ +import {input} from '@inquirer/prompts' +import {Box, render, Text} from 'ink' +import Spinner from 'ink-spinner' +import React, {useEffect, useState} from 'react' + +import {Chat} from './src' + +const Message = ({from, to, state, content}: Chat) => { + return ( + + + + {from} + (to {to}) + + : + + + {state === 'loading' ? ( + + + + + + {' Thinking...'} + + + ) : ( + state === 'success' && {content} + )} + + ) +} + +const Counter = () => { + const [counter, setCounter] = useState(0) + + // useEffect(() => { + // const timer = setInterval(() => { + // setCounter(previousCounter => previousCounter + 1); + // }, 100); + + // return () => { + // clearInterval(timer); + // }; + // }, []); + + return ( + <> + {/* + + + + {' Loading'} + + {counter} tests passed */} + + + + + + + + ) +} + +const a = render() From 7d1ded4d40732ec3c3493295614bb94e948862ce Mon Sep 17 00:00:00 2001 From: Wlad Paiva Date: Sat, 28 Oct 2023 18:45:41 -0300 Subject: [PATCH 2/7] add thinking --- .vscode/settings.json | 10 ++ README.md | 2 +- bun.lockb | Bin 549887 -> 550594 bytes examples/latest-news-aibitat.ts | 3 + package.json | 1 + src/aibitat.test.ts | 45 +++++- src/aibitat.ts | 269 ++++++++++++++++++++++++-------- src/cli.ts | 2 +- src/plugins/cli.ts | 146 ----------------- src/plugins/cli/app.tsx | 98 ++++++++++++ src/plugins/cli/context.tsx | 29 ++++ src/plugins/cli/index.tsx | 47 ++++++ src/plugins/cli/retry.tsx | 46 ++++++ src/plugins/file-history.ts | 2 +- src/plugins/index.ts | 2 +- src/plugins/web-browsing.ts | 2 +- test.tsx | 89 ----------- 17 files changed, 483 insertions(+), 310 deletions(-) delete mode 100644 src/plugins/cli.ts create mode 100644 src/plugins/cli/app.tsx create mode 100644 src/plugins/cli/context.tsx create mode 100644 src/plugins/cli/index.tsx create mode 100644 src/plugins/cli/retry.tsx delete mode 100644 test.tsx diff --git a/.vscode/settings.json b/.vscode/settings.json index 25fa621..344c917 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,3 +1,13 @@ { + "editor.defaultFormatter": "esbenp.prettier-vscode", + "[javascript]": { + "editor.defaultFormatter": "esbenp.prettier-vscode" + }, + "[typescript]": { + "editor.defaultFormatter": "esbenp.prettier-vscode" + }, + "[typescriptreact]": { + "editor.defaultFormatter": "esbenp.prettier-vscode" + }, "typescript.tsdk": "node_modules/typescript/lib" } diff --git a/README.md b/README.md index 9ab0352..93c92ac 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ This project is a fork from the original [autogen](https://github.com/microsoft/autogen) but done in TypeScript. -# AIbitat - Multi-Agent Conversation Framework +# AIbitat 🗯️🗯️💬 - Multi-Agent Conversation Framework AIbitat is a stateless & extensible framework designed to enable interaction between multiple agents while allowing human participation. diff --git a/bun.lockb b/bun.lockb index e1ebfbbeba233bebd33fa188ddc7b43ff15b50d1..cace45d90a38808fbb156bdf7298757cf3cd0a60 100755 GIT binary patch delta 112257 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 diff --git a/examples/latest-news-aibitat.ts b/examples/latest-news-aibitat.ts index ab5bf46..0a1a002 100644 --- a/examples/latest-news-aibitat.ts +++ b/examples/latest-news-aibitat.ts @@ -31,6 +31,9 @@ export const aibitat = new AIbitat({ .agent('🤖', { functions: ['aibitat-releases'], }) + .onTerminate(() => { + console.log('Bye!') + }) if (import.meta.main) { await aibitat.start({ diff --git a/package.json b/package.json index ebe1d25..9b8dd79 100644 --- a/package.json +++ b/package.json @@ -60,6 +60,7 @@ "langchain": "^0.0.169", "node-html-markdown": "^1.3.0", "openai": "^4.11.1", + "pretty-ms": "^8.0.0", "react": "^18.2.0" }, "nano-staged": { diff --git a/src/aibitat.test.ts b/src/aibitat.test.ts index a025640..56c03eb 100644 --- a/src/aibitat.test.ts +++ b/src/aibitat.test.ts @@ -38,7 +38,9 @@ describe('direct message', () => { from: '🤖', to: '🧑', content: 'TERMINATE', - state: 'success', + state: 'replied', + // @ts-expect-error + time: expect.any(Number), }) }) @@ -92,7 +94,8 @@ describe('direct message', () => { from: '🧑', to: '🤖', content: '2 + 2 = 4?', - state: 'success', + state: 'replied', + time: 2, }, ], }) @@ -110,7 +113,8 @@ describe('direct message', () => { from: '🧑', to: '🤖', content: '2 + 2 = 4?', - state: 'success', + state: 'replied', + time: 2, }) }) @@ -180,8 +184,9 @@ describe('direct message', () => { }) expect(p).resolves.toBeTrue() + // @ts-expect-error expect(aibitat.chats[3].content).toBe('...') - expect(aibitat.chats[3].state).toBe('success') + expect(aibitat.chats[3].state).toBe('replied') expect(aibitat.chats).toHaveLength(5) }) @@ -211,6 +216,8 @@ describe('direct message', () => { expect(p).resolves.toBeTrue() expect(aibitat.chats[2].from).toBe('🧑') expect(aibitat.chats[2].to).toBe('🤖') + expect(aibitat.chats[2].state).toBe('seeded') + // @ts-expect-error expect(aibitat.chats[2].content).toBe('my feedback') }) }) @@ -218,7 +225,7 @@ describe('direct message', () => { describe('as a group', () => { const members = ['🐶', '😸', '🐭'] - let aibitat: AIbitat + let aibitat: AIbitat beforeEach(() => { ai.create.mockImplementation(x => { @@ -258,6 +265,26 @@ describe('as a group', () => { }) }) +test('should be thinking while LLM generate responses', async () => { + const aibitat = new AIbitat({provider}) + .agent('🧑', {interrupt: 'ALWAYS'}) + .agent('🤖') + + const callback = mock(() => { + expect(aibitat.chats).toHaveLength(2) + expect(aibitat.chats.at(-1)).toEqual({ + from: '🤖', + to: '🧑', + state: 'thinking', + }) + }) + aibitat.onThinking(callback) + + await aibitat.start(defaultStart) + + expect(callback).toHaveBeenCalledTimes(1) +}) + test.todo('should call a function', async () => { // FIX: I can't mock the API yet // ai.create.mockImplementation(() => @@ -339,7 +366,7 @@ describe('when errors happen', () => { from: '🤖', to: '🧑', content: 'known error!!!', - state: 'error', + state: 'failed', }) }) @@ -382,7 +409,7 @@ describe('when errors happen', () => { from: '🤖', to: '🧑', content: '401: Rate limit', - state: 'error', + state: 'failed', }) await aibitat.retry() @@ -393,7 +420,9 @@ describe('when errors happen', () => { from: '🤖', to: '🧑', content: 'TERMINATE', - state: 'success', + state: 'replied', + // @ts-expect-error + time: expect.any(Number), }) }) }) diff --git a/src/aibitat.ts b/src/aibitat.ts index 70197b6..aeddfd1 100644 --- a/src/aibitat.ts +++ b/src/aibitat.ts @@ -8,40 +8,32 @@ import { AnthropicProvider, OpenAIProvider, type AnthropicModel, + type Message as MessageAI, type OpenAIModel, } from './providers/index.ts' const log = debug('autogen:chat-aibitat') -/** - * The provider config to use for the AI. - */ -export type ProviderConfig = - // FIX: should only show Openai models when there's no provider - | { - /** The OpenAI API provider */ +type Provider = 'openai' | 'anthropic' | AIProvider + +export type ProviderConfig = T extends 'openai' + ? { provider?: 'openai' - /** The model to use with the OpenAI */ model?: OpenAIModel } - | { - /** The custom AI provider */ + : T extends 'anthropic' + ? { provider: 'anthropic' - /** - * The model to use with the Anthropic API. - * @default 'claude-2' - */ model?: AnthropicModel } - | { - /** The custom AI provider */ + : { provider: AIProvider } /** * Base config for AIbitat agents. */ -export type AgentConfig = ProviderConfig & { +export type AgentConfig = ProviderConfig & { /** The role this agent will play in the conversation */ role?: string @@ -61,7 +53,7 @@ export type AgentConfig = ProviderConfig & { /** * The channel configuration for the AIbitat. */ -export type ChannelConfig = ProviderConfig & { +export type ChannelConfig = ProviderConfig & { /** The role this agent will play in the conversation */ role?: string @@ -83,27 +75,108 @@ type Route = { /** * A chat message. */ -type Message = Route & { - content: string -} +type Message = Prettify< + Route & { + content: string + } +> + +// Prettify a type +type Prettify = { + [K in keyof T]: T[K] +} & {} + +// /** +// * - `thinking`: waiting for the llm to think of a response +// * - `executing`: executing a function +// * - `interrupted`: interrupted by a node +// * - `failed`: failed to think or execute +// * - `replied`: llm replied with a message +// * - `seeded`: a response was seeded, meaning that the llm will not think of a response +// */ +// type State = +// | 'thinking' +// | 'executing' +// | 'interrupted' +// | 'failed' +// | 'replied' +// | 'seeded' + +// type xxx = T extends 'failed' | 'seeded' +// ? { +// content: string +// state: T +// } +// : T extends 'success' +// ? { +// content: string +// state: T +// time: number +// } +// : { +// state: T +// } + +type SeedChat = Prettify< + Route & { + state: 'seeded' + content: string + } +> + +type ReplyChat = Prettify< + Route & { + state: 'replied' + content: string + /** Time it took for the LLM to reply */ + time: number + } +> + +type FailedChat = Prettify< + Route & { + state: 'failed' + content: string + } +> + +type ThinkingChat = Prettify< + Route & { + state: 'thinking' + } +> + +type InterruptedChat = Prettify< + Route & { + state: 'interrupted' + } +> /** - * A chat message that is saved in the history. + * A state of a chat message that is saved in the history. + * + * - `thinking`: waiting for the llm to think of a response + * - `interrupted`: interrupted by a node + * - `failed`: failed to think or execute + * - `replied`: llm replied with a message + * - `seeded`: a response was seeded, meaning that the llm will not think of a response */ -export type Chat = Omit & { - content?: string - state: 'success' | 'interrupt' | 'error' | 'loading' -} +export type Chat = + | SeedChat + | ReplyChat + | FailedChat + | ThinkingChat + | InterruptedChat /** * Chat history. */ -type History = Array +export type History = Array /** * AIbitat props. */ -export type AIbitatProps = ProviderConfig & { +export type AIbitatProps = ProviderConfig & { /** * Chat history between all agents. * @default [] @@ -126,7 +199,7 @@ export type AIbitatProps = ProviderConfig & { /** * Plugin to use with the aibitat */ -export type AIbitatPlugin = { +export type AIbitatPlugin = { /** * The name of the plugin. This will be used to identify the plugin. * If the plugin is already installed, it will replace the old plugin. @@ -136,7 +209,7 @@ export type AIbitatPlugin = { /** * The setup function to be called when the plugin is installed. */ - setup: (aibitat: AIbitat) => void + setup: (aibitat: AIbitat) => void } /** @@ -182,19 +255,19 @@ export type FunctionDefinition = { * * Guiding the chat through a graph of agents. */ -export class AIbitat { +export class AIbitat { private emitter = new EventEmitter() - private defaultProvider: ProviderConfig + private defaultProvider: ProviderConfig private defaultInterrupt private maxRounds private _chats - private agents = new Map() - private channels = new Map() + private agents = new Map>() + private channels = new Map>() private functions = new Map() - constructor(props: AIbitatProps = {}) { + constructor(props: AIbitatProps = {} as AIbitatProps) { const { chats = [], interrupt = 'NEVER', @@ -222,7 +295,7 @@ export class AIbitat { /** * Install a plugin. */ - use(plugin: AIbitatPlugin) { + use(plugin: AIbitatPlugin) { plugin.setup(this) return this } @@ -234,7 +307,10 @@ export class AIbitat { * @param config * @returns */ - public agent(name: string, config: AgentConfig = {}) { + public agent( + name: string, + config: AgentConfig = {} as AgentConfig, + ) { this.agents.set(name, config) return this } @@ -247,7 +323,11 @@ export class AIbitat { * @param config * @returns */ - public channel(name: string, members: string[], config: ChannelConfig = {}) { + public channel( + name: string, + members: string[], + config: ChannelConfig = {} as ChannelConfig, + ) { this.channels.set(name, { members, ...config, @@ -352,10 +432,13 @@ export class AIbitat { * @returns */ private interrupt(route: Route) { - this._chats.push({ + const chat: InterruptedChat = { ...route, - state: 'interrupt', - }) + state: 'interrupted', + } + + this._chats = [...this._chats, chat] + this.emitter.emit('interrupt', route, this) } @@ -372,21 +455,70 @@ export class AIbitat { } /** - * Register a new successful message in the chat history. - * This will trigger the `onMessage` event. + * Add a seed message to the chat history and trigger the `onMessage` event. * * @param message */ - private newMessage(message: Message) { - const chat = { + private seed(message: Prettify>) { + const chat: SeedChat = { ...message, - state: 'success' as const, + state: 'seeded', } + this._chats = [...this._chats, chat] + this.emitter.emit('message', chat, this) + } - this._chats.push(chat) + /** + * + * @param message + */ + private replied(message: Prettify>) { + // remove the thinking message + const everythingElse = this._chats.filter( + chat => + !( + chat.to === message.to && + chat.from === message.from && + chat.state === 'thinking' + ), + ) + + const chat: ReplyChat = { + ...message, + state: 'replied', + } + + this._chats = [...everythingElse, chat] this.emitter.emit('message', chat, this) } + /** + * Triggered when an agent is thinking of a response. + * + * @param listener + * @returns + */ + public onThinking(listener: (chat: Chat) => void) { + this.emitter.on('thinking', listener) + return this + } + + /** + * Add a thinking message to the chat history and trigger the `onThinking` event. + * This is used when the LLM is thinking of a response. + * + * @param message + */ + + private setThinking(message: Prettify>) { + const chat: ThinkingChat = { + ...message, + state: 'thinking', + } + this._chats = [...this._chats, chat] + this.emitter.emit('thinking', chat, this) + } + /** * Triggered when an error occurs during the chat. * @@ -423,12 +555,22 @@ export class AIbitat { * @param message */ private newError(route: Route, error: unknown) { + // remove the thinking message + const everythingElse = this._chats.filter( + chat => + !( + chat.to === route.to && + chat.from === route.from && + chat.state === 'thinking' + ), + ) + const chat = { ...route, content: error instanceof Error ? error.message : String(error), - state: 'error' as const, + state: 'failed' as const, } - this._chats.push(chat) + this._chats = [...everythingElse, chat] this.emitter.emit('replyError', error, chat) } @@ -438,7 +580,9 @@ export class AIbitat { * @param listener * @returns */ - public onStart(listener: (chat: Chat, aibitat: AIbitat) => void) { + public onStart( + listener: (chat: Chat, aibitat: AIbitat) => void, + ) { this.emitter.on('start', listener) return this } @@ -456,8 +600,8 @@ export class AIbitat { ) // register the message in the chat history - this.newMessage(message) this.emitter.emit('start', message, this) + this.seed(message) // ask the node to reply await this.chat({ @@ -723,8 +867,11 @@ ${this.getHistory({to: route.to}) }) // get the chat completion + this.setThinking(route) + const startTime = performance.now() const content = await provider.create(messages, functions) - this.newMessage({...route, content}) + const time = performance.now() - startTime + this.replied({...route, content, time}) return content } @@ -739,7 +886,7 @@ ${this.getHistory({to: route.to}) */ public async continue(feedback?: string | null) { const lastChat = this._chats.at(-1) - if (!lastChat || lastChat.state !== 'interrupt') { + if (!lastChat || lastChat.state !== 'interrupted') { throw new Error('No chat to continue') } @@ -760,7 +907,7 @@ ${this.getHistory({to: route.to}) } // register the message in the chat history - this.newMessage(message) + this.seed(message) // ask the node to reply await this.chat({ @@ -780,7 +927,7 @@ ${this.getHistory({to: route.to}) */ public async retry() { const lastChat = this._chats.at(-1) - if (!lastChat || lastChat.state !== 'error') { + if (!lastChat || lastChat.state !== 'failed') { throw new Error('No chat to retry') } @@ -796,7 +943,7 @@ ${this.getHistory({to: route.to}) */ private getHistory({from, to}: {from?: string; to?: string}) { return this._chats.filter(chat => { - const isSuccess = chat.state === 'success' + const isSuccess = chat.state === 'seeded' || chat.state === 'replied' // return all chats to the node if (!from) { @@ -814,12 +961,10 @@ ${this.getHistory({to: route.to}) const mutual = hasSent || hasReceived return isSuccess && mutual - }) as { - from: string - to: string + }) as (Route & { content: string - state: 'success' - }[] + state: 'seeded' | 'replied' + })[] } /** @@ -828,7 +973,7 @@ ${this.getHistory({to: route.to}) * * @param config The provider configuration. */ - private getProviderForConfig(config: ProviderConfig) { + private getProviderForConfig(config: ProviderConfig) { if (typeof config.provider === 'object') { return config.provider } diff --git a/src/cli.ts b/src/cli.ts index b11579b..c445052 100755 --- a/src/cli.ts +++ b/src/cli.ts @@ -15,7 +15,7 @@ const task = await input({ }) const aibitat = new AIbitat() - .use(cli({simulateStream: false})) + .use(cli()) .use(experimental_webBrowsing()) .agent('prompter', { interrupt: 'ALWAYS', diff --git a/src/plugins/cli.ts b/src/plugins/cli.ts deleted file mode 100644 index 3c70875..0000000 --- a/src/plugins/cli.ts +++ /dev/null @@ -1,146 +0,0 @@ -import {input} from '@inquirer/prompts' -import chalk from 'chalk' - -import {AIbitatPlugin} from '..' -import {RateLimitError, ServerError} from '../error' - -/** - * Command-line Interface plugin. It prints the messages on the console and asks for feedback - * while the conversation is running in the background. - */ -function cli({ - simulateStream = true, -}: { - /** - * Simulate streaming by breaking the cached response into chunks. - * Helpful to make the conversation more realistic and faster. - * @default true - */ - simulateStream?: boolean -} = {}) { - return { - name: 'cli', - setup(aibitat) { - let printing: Promise[] = [] - - aibitat.onError(error => { - console.error(chalk.red(` error: ${(error as Error).message}`)) - - if (error instanceof RateLimitError || error instanceof ServerError) { - console.error(chalk.red(` retrying in 60 seconds...`)) - setTimeout(() => { - aibitat.retry() - }, 60000) - return - } - }) - - aibitat.onStart(() => { - console.log() - console.log('🚀 starting chat ...\n') - console.time('🚀 chat finished!') - printing = [Promise.resolve()] - }) - - aibitat.onMessage(async message => { - const next = new Promise(async resolve => { - await Promise.all(printing) - await cli.print(message, simulateStream) - resolve() - }) - printing.push(next) - }) - - aibitat.onTerminate(async () => { - await Promise.all(printing) - console.timeEnd('🚀 chat finished') - }) - - aibitat.onInterrupt(async node => { - await Promise.all(printing) - const feedback = await cli.askForFeedback(node) - // Add an extra line after the message - console.log() - - if (feedback === 'exit') { - console.timeEnd('🚀 chat finished') - return process.exit(0) - } - - await aibitat.continue(feedback) - }) - }, - } as AIbitatPlugin -} - -/** - * Print a message on the terminal - * - * @param message - * @param simulateStream - */ -cli.print = async ( - message: {from: string; to: string; content?: string} & { - state: 'loading' | 'error' | 'success' | 'interrupt' - }, - simulateStream: boolean = true, -) => { - const replying = chalk.dim(`(to ${message.to})`) - const reference = `${chalk.magenta('✎')} ${chalk.bold( - message.from, - )} ${replying}:` - - if (!simulateStream) { - console.log(reference) - console.log(message.content) - // Add an extra line after the message - console.log() - return - } - - process.stdout.write(`${reference}\n`) - - // Emulate streaming by breaking the cached response into chunks - const chunks = message.content?.split(' ') || [] - const stream = new ReadableStream({ - async start(controller) { - for (const chunk of chunks) { - const bytes = new TextEncoder().encode(chunk + ' ') - controller.enqueue(bytes) - await new Promise(r => - setTimeout( - r, - // get a random number between 10ms and 50ms to simulate a random delay - Math.floor(Math.random() * 40) + 10, - ), - ) - } - controller.close() - }, - }) - - // Stream the response to the chat - for await (const chunk of stream) { - process.stdout.write(new TextDecoder().decode(chunk)) - } - - // Add an extra line after the message - console.log() - console.log() -} - -/** - * Ask for feedback to the user using the terminal - * - * @param node - * @returns - */ -cli.askForFeedback = (node: {from: string; to: string}) => { - return input({ - message: `Provide feedback to ${chalk.yellow(node.to)} as ${chalk.yellow( - node.from, - )}. Press enter to skip and use auto-reply, or type 'exit' to end the conversation: `, - }) -} - -export {cli} diff --git a/src/plugins/cli/app.tsx b/src/plugins/cli/app.tsx new file mode 100644 index 0000000..1af0ce0 --- /dev/null +++ b/src/plugins/cli/app.tsx @@ -0,0 +1,98 @@ +import {Box, render, Text} from 'ink' +import Spinner from 'ink-spinner' +import prettyMilliseconds from 'pretty-ms' +import React, {useEffect, useState} from 'react' + +import {AIbitat, Chat} from '../..' +import {AIbitatProvider} from './context' +import {Retry} from './retry' + +function Message(chat: Chat) { + return ( + + + + {chat.from} + + (to {chat.to} + {chat.state === 'replied' && ( + in {prettyMilliseconds(chat.time)} + )} + ) + + + : + + + + + + {chat.state === 'replied' ? ( + {chat.content} + ) : chat.state === 'seeded' ? ( + {chat.content} + ) : chat.state === 'failed' ? ( + + + + Something went wrong... + + {chat.content} + + ) : chat.state === 'interrupted' ? null : ( + + + + + Thinking... + + )} + + + + ) +} + +export function App({ + aibitat, + startTime, + finishTime, + history, +}: { + aibitat: AIbitat + startTime?: number + finishTime?: number + history?: Chat[] +}) { + return ( + + + {startTime && ( + + + AIbitat 🗯️🗯️💬 + + + )} + + + {history?.map((message, index) => ( + + ))} + + + + + {finishTime && startTime && ( + + ✔︎ + Chat finished in + + {prettyMilliseconds(finishTime - startTime)} + + + )} + + + ) +} diff --git a/src/plugins/cli/context.tsx b/src/plugins/cli/context.tsx new file mode 100644 index 0000000..0b96e5e --- /dev/null +++ b/src/plugins/cli/context.tsx @@ -0,0 +1,29 @@ +import React, {createContext, useContext} from 'react' + +import type {AIbitat} from '../..' + +const AIbitatContext = createContext | undefined>(undefined) + +function useAIbitat() { + const context = useContext(AIbitatContext) + if (context === undefined) { + throw new Error('useAIbitat must be used within a AIbitatProvider') + } + return context +} + +function AIbitatProvider({ + children, + aibitat, +}: { + children: React.ReactNode + aibitat: AIbitat +}) { + return ( + + {children} + + ) +} + +export {AIbitatProvider, useAIbitat} diff --git a/src/plugins/cli/index.tsx b/src/plugins/cli/index.tsx new file mode 100644 index 0000000..9324fd0 --- /dev/null +++ b/src/plugins/cli/index.tsx @@ -0,0 +1,47 @@ +import {render} from 'ink' + +import type {AIbitatPlugin, Chat} from '../..' +import {App} from './app' + +/** + * Command-line Interface plugin. It prints the messages on the console and asks for feedback + * while the conversation is running in the background. + */ +function cli() { + return { + name: 'cli', + setup(aibitat) { + let startTime: number | undefined + let finishTime: number | undefined + let history: Chat[] = [] + const w = render() + + const refresh = () => { + w.rerender( + , + ) + } + + aibitat.onStart(() => { + startTime = performance.now() + refresh() + }) + aibitat.onTerminate(() => { + console.log('🔥🔥🔥') + finishTime = performance.now() + refresh() + + console.log('🔥🔥🔥') + }) + aibitat.onThinking(refresh) + aibitat.onMessage(refresh) + }, + } as AIbitatPlugin +} + +export {cli} diff --git a/src/plugins/cli/retry.tsx b/src/plugins/cli/retry.tsx new file mode 100644 index 0000000..46535eb --- /dev/null +++ b/src/plugins/cli/retry.tsx @@ -0,0 +1,46 @@ +import {Text} from 'ink' +import prettyMilliseconds from 'pretty-ms' +import {useEffect, useState} from 'react' + +import {RateLimitError, ServerError} from '../../error' +import {useAIbitat} from './context' + +export function Retry() { + const aibitat = useAIbitat() + const [retryCounter, setRetryCounter] = useState(60) + + useEffect(() => { + let retryTimer: NodeJS.Timeout | undefined + + aibitat.onError(error => { + // Only retry on rate limit and server errors + if (!(error instanceof RateLimitError || error instanceof ServerError)) { + return + } + + retryTimer = setInterval(() => { + setRetryCounter(previousCounter => { + const newRetry = previousCounter - 1 + + if (newRetry === 0) { + clearInterval(retryTimer) + aibitat.retry() + return 60 + } + + return newRetry + }) + }, 1_000) + }) + + return () => { + clearInterval(retryTimer) + } + }, [aibitat]) + + return retryCounter < 60 ? ( + + Retrying in {prettyMilliseconds(retryCounter * 1_000)} + + ) : null +} diff --git a/src/plugins/file-history.ts b/src/plugins/file-history.ts index 44ea344..e6ce0d5 100644 --- a/src/plugins/file-history.ts +++ b/src/plugins/file-history.ts @@ -37,5 +37,5 @@ export function fileHistory({ }) }) }, - } as AIbitatPlugin + } as AIbitatPlugin } diff --git a/src/plugins/index.ts b/src/plugins/index.ts index 61945bb..dfd0264 100644 --- a/src/plugins/index.ts +++ b/src/plugins/index.ts @@ -1,3 +1,3 @@ -export * from './cli.ts' +export * from './cli' export * from './web-browsing.ts' export * from './file-history.ts' diff --git a/src/plugins/web-browsing.ts b/src/plugins/web-browsing.ts index 2357c2e..2745dac 100644 --- a/src/plugins/web-browsing.ts +++ b/src/plugins/web-browsing.ts @@ -174,5 +174,5 @@ export function experimental_webBrowsing({}: {} = {}) { }, }) }, - } as AIbitatPlugin + } as AIbitatPlugin } diff --git a/test.tsx b/test.tsx deleted file mode 100644 index 443ecfd..0000000 --- a/test.tsx +++ /dev/null @@ -1,89 +0,0 @@ -import {input} from '@inquirer/prompts' -import {Box, render, Text} from 'ink' -import Spinner from 'ink-spinner' -import React, {useEffect, useState} from 'react' - -import {Chat} from './src' - -const Message = ({from, to, state, content}: Chat) => { - return ( - - - - {from} - (to {to}) - - : - - - {state === 'loading' ? ( - - - - - - {' Thinking...'} - - - ) : ( - state === 'success' && {content} - )} - - ) -} - -const Counter = () => { - const [counter, setCounter] = useState(0) - - // useEffect(() => { - // const timer = setInterval(() => { - // setCounter(previousCounter => previousCounter + 1); - // }, 100); - - // return () => { - // clearInterval(timer); - // }; - // }, []); - - return ( - <> - {/* - - - - {' Loading'} - - {counter} tests passed */} - - - - - - - - ) -} - -const a = render() From 146f963ac7ef0aeb6a4485cc61a9d1ff93c97513 Mon Sep 17 00:00:00 2001 From: Wlad Paiva Date: Sat, 28 Oct 2023 18:49:54 -0300 Subject: [PATCH 3/7] fix timestamp --- src/plugins/cli/app.tsx | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/src/plugins/cli/app.tsx b/src/plugins/cli/app.tsx index 1af0ce0..e266871 100644 --- a/src/plugins/cli/app.tsx +++ b/src/plugins/cli/app.tsx @@ -1,7 +1,7 @@ -import {Box, render, Text} from 'ink' +import {Box, Text} from 'ink' import Spinner from 'ink-spinner' import prettyMilliseconds from 'pretty-ms' -import React, {useEffect, useState} from 'react' +import React from 'react' import {AIbitat, Chat} from '../..' import {AIbitatProvider} from './context' @@ -13,14 +13,11 @@ function Message(chat: Chat) { {chat.from} - - (to {chat.to} - {chat.state === 'replied' && ( - in {prettyMilliseconds(chat.time)} - )} - ) - - + (to {chat.to} + {chat.state === 'replied' && ( + in {prettyMilliseconds(chat.time)} + )} + ) : From c4d2e379b054c0dbf499cec668c92b316079317c Mon Sep 17 00:00:00 2001 From: Wlad Paiva Date: Mon, 30 Oct 2023 11:30:58 -0300 Subject: [PATCH 4/7] trim anthropic response --- src/providers/anthropic.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/providers/anthropic.ts b/src/providers/anthropic.ts index 225c337..eba2027 100644 --- a/src/providers/anthropic.ts +++ b/src/providers/anthropic.ts @@ -129,7 +129,7 @@ export class AnthropicProvider extends AIProvider { prompt, }) - const result = response.completion + const result = response.completion.trim() // Handle function calls if the model returns a function call if (result.includes('function_name') && functions) { From 76c78b6e32c28e4e47c2a90059e396df873d1136 Mon Sep 17 00:00:00 2001 From: Wlad Paiva Date: Mon, 30 Oct 2023 11:35:53 -0300 Subject: [PATCH 5/7] improve cli --- .changeset/brown-apes-sort.md | 5 +++ bun.lockb | Bin 550594 -> 551752 bytes examples/latest-news-aibitat.ts | 3 -- package.json | 2 +- src/plugins/cli/app.tsx | 57 ++++++++++++++------------- src/plugins/cli/index.tsx | 8 ++-- src/plugins/cli/input.tsx | 66 ++++++++++++++++++++++++++++++++ 7 files changed, 103 insertions(+), 38 deletions(-) create mode 100644 .changeset/brown-apes-sort.md create mode 100644 src/plugins/cli/input.tsx diff --git a/.changeset/brown-apes-sort.md b/.changeset/brown-apes-sort.md new file mode 100644 index 0000000..90e0bee --- /dev/null +++ b/.changeset/brown-apes-sort.md @@ -0,0 +1,5 @@ +--- +'aibitat': patch +--- + +Improve cli for better feedback to what is happening diff --git a/bun.lockb b/bun.lockb index cace45d90a38808fbb156bdf7298757cf3cd0a60..164bd03a9abc2887c4abecfc2e4264f2c639fb9f 100755 GIT binary patch delta 27083 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 Te?xiK=(dDV?waBWWn29}r#e)1 delta 27063 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 { - console.log('Bye!') - }) if (import.meta.main) { await aibitat.start({ diff --git a/package.json b/package.json index 9b8dd79..3c62a4b 100644 --- a/package.json +++ b/package.json @@ -55,7 +55,7 @@ "@inquirer/prompts": "^3.2.0", "chalk": "^5.3.0", "debug": "^4.3.4", - "ink": "^4.4.1", + "ink": "4.3.1", "ink-spinner": "^5.0.0", "langchain": "^0.0.169", "node-html-markdown": "^1.3.0", diff --git a/src/plugins/cli/app.tsx b/src/plugins/cli/app.tsx index e266871..82a0ff0 100644 --- a/src/plugins/cli/app.tsx +++ b/src/plugins/cli/app.tsx @@ -5,46 +5,45 @@ import React from 'react' import {AIbitat, Chat} from '../..' import {AIbitatProvider} from './context' +import {Input} from './input.tsx' import {Retry} from './retry' function Message(chat: Chat) { return ( - - {chat.from} - (to {chat.to} - {chat.state === 'replied' && ( - in {prettyMilliseconds(chat.time)} - )} - ) - : - + {chat.from} + (to {chat.to} + {chat.state === 'replied' && ( + in {prettyMilliseconds(chat.time)} + )} + ) + : - - {chat.state === 'replied' ? ( - {chat.content} - ) : chat.state === 'seeded' ? ( - {chat.content} - ) : chat.state === 'failed' ? ( - - - - Something went wrong... - - {chat.content} - - ) : chat.state === 'interrupted' ? null : ( + {chat.state === 'replied' ? ( + {chat.content} + ) : chat.state === 'seeded' ? ( + {chat.content} + ) : chat.state === 'failed' ? ( + - - - - Thinking... + + Something went wrong... - )} - + {chat.content} + + ) : chat.state === 'interrupted' ? ( + + ) : ( + + + + + Thinking... + + )} ) diff --git a/src/plugins/cli/index.tsx b/src/plugins/cli/index.tsx index 9324fd0..ca8875c 100644 --- a/src/plugins/cli/index.tsx +++ b/src/plugins/cli/index.tsx @@ -14,10 +14,10 @@ function cli() { let startTime: number | undefined let finishTime: number | undefined let history: Chat[] = [] - const w = render() + const app = render() const refresh = () => { - w.rerender( + app.rerender( { - console.log('🔥🔥🔥') finishTime = performance.now() refresh() - - console.log('🔥🔥🔥') }) aibitat.onThinking(refresh) + aibitat.onInterrupt(refresh) aibitat.onMessage(refresh) }, } as AIbitatPlugin diff --git a/src/plugins/cli/input.tsx b/src/plugins/cli/input.tsx new file mode 100644 index 0000000..9d60426 --- /dev/null +++ b/src/plugins/cli/input.tsx @@ -0,0 +1,66 @@ +import {Text, useApp, useInput} from 'ink' +import React, {useState} from 'react' + +import {useAIbitat} from './context' + +function Cursor() { + const [visible, setVisible] = useState(true) + + React.useEffect(() => { + const id = setInterval(() => { + setVisible(visible => !visible) + }, 500) + return () => clearInterval(id) + }, []) + + return visible ? : +} + +export function Input() { + const aibitat = useAIbitat() + const {exit} = useApp() + const [text, setText] = React.useState('') + + useInput((input, key) => { + if (key.ctrl && input === 'c') { + return exit() + } + + if (key.escape) { + return aibitat.continue() + } + + /* FIX: [bun] ideally it should be shift+return but shift is not being detected on Bun */ + if (key.ctrl && input === 'n') { + return setText(text => text.concat('\n')) + } + + if (key.return) { + if (text === 'exit') { + return exit() + } + + return aibitat.continue(text) + } + + if (key.backspace || key.delete) { + return setText(text => text.slice(0, -1)) + } + + setText(text => text + input) + }) + + return ( + + {text} + + {!text && ( + + {/* FIX: [bun] ideally it should be shift+return but shift is not being detected on Bun */} + (press 'esc' to skip and auto-reply, or 'ctrl+n' for new line, or type + 'exit' to end the conversation) + + )} + + ) +} From e18d48054527ab9456dcc0b5da902d84ba0450f5 Mon Sep 17 00:00:00 2001 From: Wlad Paiva Date: Mon, 30 Oct 2023 11:40:03 -0300 Subject: [PATCH 6/7] docs for onthinking --- .changeset/five-badgers-admire.md | 6 ++++++ README.md | 6 +++++- 2 files changed, 11 insertions(+), 1 deletion(-) create mode 100644 .changeset/five-badgers-admire.md diff --git a/.changeset/five-badgers-admire.md b/.changeset/five-badgers-admire.md new file mode 100644 index 0000000..4d7362e --- /dev/null +++ b/.changeset/five-badgers-admire.md @@ -0,0 +1,6 @@ +--- +'aibitat': patch +--- + +Added `.onThinking` event to better track when AI providers are generating +responses diff --git a/README.md b/README.md index 93c92ac..d7dcc65 100644 --- a/README.md +++ b/README.md @@ -130,7 +130,7 @@ config: // from: '🧑', // to: '🤖', // content: `Talk about something`, - // state: 'success', + // state: 'replied', // }, ], } @@ -233,6 +233,10 @@ The following events are available: - `onInterrupt`: Called when the conversation is interrupted by an agent. Generally means the agent has a question or needs help. The conversation can be resumed by calling `.continue(feedback)`. +- `onThinking`: Called when a message is sent to the provider. Generally means + the provider is thinking and the conversation is waiting for a response. + `thinking` status is added to the chat history and gets replaced by either + `replied` or `error`. ## Contributing From a3e70038bfd6b6369b8241f606e506fd5a537bc2 Mon Sep 17 00:00:00 2001 From: Wlad Paiva Date: Mon, 30 Oct 2023 15:07:32 -0300 Subject: [PATCH 7/7] remove blink cursor --- src/plugins/cli/input.tsx | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/src/plugins/cli/input.tsx b/src/plugins/cli/input.tsx index 9d60426..bf7c965 100644 --- a/src/plugins/cli/input.tsx +++ b/src/plugins/cli/input.tsx @@ -6,14 +6,21 @@ import {useAIbitat} from './context' function Cursor() { const [visible, setVisible] = useState(true) - React.useEffect(() => { - const id = setInterval(() => { - setVisible(visible => !visible) - }, 500) - return () => clearInterval(id) - }, []) + // BUG: too much re-rendering makes it flicker when looking for something that has been replied + // React.useEffect(() => { + // const id = setInterval(() => { + // setVisible(visible => !visible) + // }, 500) + // return () => clearInterval(id) + // }, []) - return visible ? : + return visible ? ( + + {/* ⎢ */}{' '} + + ) : ( + + ) } export function Input() {