-
Notifications
You must be signed in to change notification settings - Fork 112
/
Copy pathstreaming.ts
executable file
·35 lines (29 loc) · 988 Bytes
/
streaming.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#!/usr/bin/env -S npm run tsn -T
import Anthropic from '@anthropic-ai/sdk';
const client = new Anthropic(); // gets API Key from environment variable ANTHROPIC_API_KEY
async function main() {
const stream = client.messages
.stream({
messages: [
{
role: 'user',
content: `Hey Claude! How can I recursively list all files in a directory in Rust?`,
},
],
model: 'claude-3-5-sonnet-latest',
max_tokens: 1024,
})
// Once a content block is fully streamed, this event will fire
.on('contentBlock', (content) => console.log('contentBlock', content))
// Once a message is fully streamed, this event will fire
.on('message', (message) => console.log('message', message));
for await (const event of stream) {
console.log('event', event);
}
const message = await stream.finalMessage();
console.log('finalMessage', message);
}
main().catch((err) => {
console.error(err);
process.exit(1);
});