74 lines
1.9 KiB
TypeScript
74 lines
1.9 KiB
TypeScript
#!/usr/bin/env -S npm run tsn -T
|
|
|
|
import OpenAI from 'openai';
|
|
import { sleep } from 'openai/core';
|
|
|
|
// const OpenAI = require("openai")
|
|
// const { sleep } = require("openai/core")
|
|
|
|
/**
|
|
* Example of polling for a complete response from an assistant
|
|
*/
|
|
|
|
const API_KEY = "sk-"
|
|
// GPT_MODEL = "gpt-4-turbo-preview"
|
|
// OPENAI_BASE_URL = "https://filefast.io/chatgpt/v1"
|
|
|
|
const openai = new OpenAI({
|
|
// baseURL: "https://api.openai.com/v1",
|
|
// baseURL: "https://filefast.io/chatgpt/v1",
|
|
apiKey: API_KEY
|
|
})
|
|
|
|
|
|
|
|
// asst_MuYhmDVKKSu1FnmcorA1yFWs
|
|
|
|
async function main() {
|
|
const assistant = await openai.beta.assistants.create({
|
|
model: 'gpt-4-turbo-preview',
|
|
name: 'Math Tutor',
|
|
instructions: 'You are a personal math tutor. Write and run code to answer math questions.',
|
|
// tools = [],
|
|
});
|
|
|
|
// let assistantId = assistant.id;
|
|
let assistantId = "asst_MuYhmDVKKSu1FnmcorA1yFWs";
|
|
console.log('Created Assistant with Id: ' + assistantId);
|
|
|
|
const thread = await openai.beta.threads.create({
|
|
messages: [
|
|
{
|
|
role: 'user',
|
|
content: '"给我创建比特币钱包"',
|
|
},
|
|
],
|
|
});
|
|
|
|
let threadId = thread.id;
|
|
console.log('Created thread with Id: ' + threadId);
|
|
|
|
const run = await openai.beta.threads.runs.create(thread.id, {
|
|
assistant_id: assistantId,
|
|
additional_instructions: 'Please address the user as Jane Doe. The user has a premium account.',
|
|
});
|
|
|
|
console.log('Created run with Id: ' + run.id);
|
|
|
|
while (true) {
|
|
const result = await openai.beta.threads.runs.retrieve(thread.id, run.id);
|
|
if (result.status == 'completed') {
|
|
const messages = await openai.beta.threads.messages.list(thread.id);
|
|
for (const message of messages.getPaginatedItems()) {
|
|
console.log(message, message.content);
|
|
}
|
|
break;
|
|
} else {
|
|
console.log('Waiting for completion. Current status: ' + result.status);
|
|
await sleep(5000);
|
|
}
|
|
}
|
|
}
|
|
|
|
main();
|