Skip to content

Commit

Permalink
List assistants
Browse files Browse the repository at this point in the history
  • Loading branch information
sam-lippert committed Dec 14, 2023
1 parent be31a68 commit 9d513c4
Show file tree
Hide file tree
Showing 2 changed files with 51 additions and 34 deletions.
31 changes: 8 additions & 23 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
@@ -1,29 +1,14 @@
{
"version": "0.2.0",
"configurations": [
{
"name": "Cloudflare: debug server-side",
"type": "node-terminal",
"request": "launch",
"command": "yarn dev"
},
{
"name": "Cloudflare: debug client-side",
"type": "pwa-chrome",
"request": "launch",
"url": "http://localhost:8787"
},
{
"name": "Cloudflare: debug full stack",
"type": "node-terminal",
"request": "launch",
"command": "yarn dev",
"console": "integratedTerminal",
"serverReadyAction": {
"pattern": "started server on .+, url: (https?://.+)",
"uriFormat": "%s",
"action": "debugWithChrome"
}
"name": "Wrangler",
"type": "node",
"request": "attach",
"cwd": "/",
"resolveSourceMapLocations": null,
"attachExistingChildren": false,
"autoAttachChildProcesses": false,
"sourceMaps": true // works with or without this line
}
]
}
54 changes: 43 additions & 11 deletions worker.js
Original file line number Diff line number Diff line change
Expand Up @@ -22,22 +22,44 @@ const api = new API({
api.get('/favicon.ico', () => {
return new Response(null, { status: 404 })
})
api.get('/webhooks/github', webhooks)
api.get('/:message?', requiresAuth, handler)
api.get('/:template/:templateId/:message?', requiresAuth, handler)
api.createRoute('POST', '/api/:message', requiresAuth, handler)
api.createRoute('POST', '/post', requiresAuth, handler)
api.createRoute('POST', '/:message?', requiresAuth, handler)
api.createRoute('POST', '/:template/:templateId/:message?', requiresAuth, handler)

api.get('/assistants', requiresAuth, async (req, env) => {
const openai = new OpenAI({ apiKey: env.OPENAI_API_KEY })
const assistants = await openai.beta.assistants.list()
console.log({ assistants })
return assistants
})
api.get('/assistants/:assistantId', requiresAuth, async (req, env) => {
const openai = new OpenAI({ apiKey: env.OPENAI_API_KEY })
const { name, instructions, model } = req.query
const { assistantId } = req.params
const assistant =
assistantId === 'new'
? await openai.beta.assistants.create({
name,
instructions,
model,
})
: await openai.beta.assistants.retrieve(assistantId)
console.log({ assistant })
return assistant
})
api.get('/threads/:threadId', requiresAuth, async (req, env) => {
const openai = new OpenAI(env.OPENAI_API_KEY)
const {
ctx: {
headers: { host },
},
} = req
console.log({ host })
const openai = new OpenAI({ apiKey: env.OPENAI_API_KEY })
const { threadId } = req.params
const thread = threadId === 'new' ? await openai.beta.threads.create() : await openai.beta.threads.messages.list(threadId)
return thread
console.log({ thread })
const url = new URL(`threads/${threadId}`, 'https://gpt.do')
return thread.data ? { ...thread, url } : { data: thread, url }
})
api.get('/threads/:threadId/run/:runId?', requiresAuth, async (req, env) => {
const openai = new OpenAI(env.OPENAI_API_KEY)
const openai = new OpenAI({ apiKey: env.OPENAI_API_KEY })
const { threadId, runId } = req.params
const { assistant: assistant_id, instructions } = req.query
const run = runId
Expand All @@ -46,18 +68,28 @@ api.get('/threads/:threadId/run/:runId?', requiresAuth, async (req, env) => {
assistant_id,
instructions,
})
console.log({ run })
return run
})
api.get('/threads/:threadId/:message', requiresAuth, async (req, env) => {
const openai = new OpenAI(env.OPENAI_API_KEY)
const openai = new OpenAI({ apiKey: env.OPENAI_API_KEY })
const { threadId, message: content } = req.params
const message = await openai.beta.threads.messages.create(threadId, {
role: 'user',
content,
})
console.log({ message })
return message
})

api.get('/webhooks/github', webhooks)
api.get('/:message?', requiresAuth, handler)
api.get('/:template/:templateId/:message?', requiresAuth, handler)
api.createRoute('POST', '/api/:message', requiresAuth, handler)
api.createRoute('POST', '/post', requiresAuth, handler)
api.createRoute('POST', '/:message?', requiresAuth, handler)
api.createRoute('POST', '/:template/:templateId/:message?', requiresAuth, handler)

async function handler(req, env) {
async function getCompletion(options) {
return await fetch('https://api.openai.com/v1/chat/completions', {
Expand Down

0 comments on commit 9d513c4

Please sign in to comment.