Skip to main content
Glama
askGPT.ts2.14 kB
import { z } from 'zod'; import type { GPTResponse } from '../types/index.js'; import type { OpenAIService } from '../services/openai.js'; import type { SessionManager } from '../services/session-manager.js'; export const askGPTSchema = z.object({ model: z.enum(['gpt-5', 'gpt-5-mini', 'o3']).describe('GPT model to use (gpt-5, gpt-5-mini, o3)'), prompt: z.string().min(1).describe('The prompt to send to the model'), reasoning_effort: z.enum(['minimal', 'low', 'medium', 'high']).optional().describe('Reasoning depth: minimal (fastest), low, medium, high (most thorough)'), verbosity: z.enum(['low', 'medium', 'high']).optional().describe('Response detail level'), session_id: z.string().optional().describe('Optional session ID to maintain conversation context'), }); export async function handleAskGPT( params: z.infer<typeof askGPTSchema>, openaiService: OpenAIService, sessionManager: SessionManager ): Promise<GPTResponse> { const { model, prompt, reasoning_effort, verbosity, session_id } = params; let conversationHistory = undefined; let activeSessionId = session_id; // Handle session if (session_id) { const session = sessionManager.getSession(session_id); if (!session) { throw new Error(`Session ${session_id} not found`); } conversationHistory = sessionManager.getConversationHistory(session_id); sessionManager.updateModelPreference(session_id, model); } // Call OpenAI const { response, tokensUsed } = await openaiService.askGPT( model, prompt, reasoning_effort, verbosity, conversationHistory ); // Update session with new messages if (activeSessionId) { sessionManager.addMessage(activeSessionId, { role: 'user', content: prompt }, 0); sessionManager.addMessage(activeSessionId, { role: 'assistant', content: response }, tokensUsed); } return { model, response, reasoning_effort: model !== 'o3' ? reasoning_effort : undefined, verbosity: model !== 'o3' ? verbosity : undefined, session_id: activeSessionId, timestamp: new Date().toISOString(), tokens_used: tokensUsed, }; }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/bzzimmy/gpt-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server