import { LiteralClient, Thread } from '@literalai/client';
const client = new LiteralClient(process.env['LITERAL_API_KEY']);
async function myAssistant(thread: Thread, query: string) {
const run = thread.step({
type: "run",
name: "My Assistant",
input: { content: query },
});
// Implement your assistant logic here
await new Promise((r) => setTimeout(r, 1000));
const response = { content: "My assistant response" };
run.output = response;
await run.send();
await run
.step({
type: "assistant_message",
name: "Assistant",
output: response,
})
.send();
}
async function main() {
// You can also continue a thread by passing the thread id
const thread = await client.thread({ name: "Thread Example" }).upsert();
console.log(thread.id);
const userQuery = "Hello World";
thread
.step({
type: "user_message",
name: "User",
output: { content: userQuery },
})
.send();
await myAssistant(thread, userQuery);
const followUpQuery = "Follow up!";
thread
.step({
type: "user_message",
name: "User",
output: { content: followUpQuery },
})
.send();
await myAssistant(thread, userQuery);
}
main()
.then(() => process.exit(0))
.catch((error) => console.error(error));