summaryrefslogtreecommitdiff
path: root/websocket-server/src/sessionManager.ts
diff options
context:
space:
mode:
authorIlan Bigio <ilan@openai.com>2024-12-30 11:38:04 -0500
committerGitHub <noreply@github.com>2024-12-30 11:38:04 -0500
commit4e9f754f6349fd6ecb82c2f35e66691268cdf11d (patch)
tree76f552097672702c6305bd041475d34132799a9f /websocket-server/src/sessionManager.ts
parent80bd1166f00871622890c8c3072d0890d6405829 (diff)
parentf65c5b74e2fe8448264d58ee40d390398b708cca (diff)
Merge pull request #2 from encore-ai/mainHEADmain
fix: openai env instantiation
Diffstat (limited to 'websocket-server/src/sessionManager.ts')
-rw-r--r--websocket-server/src/sessionManager.ts11
1 files changed, 6 insertions, 5 deletions
diff --git a/websocket-server/src/sessionManager.ts b/websocket-server/src/sessionManager.ts
index 7cf6336..16a2276 100644
--- a/websocket-server/src/sessionManager.ts
+++ b/websocket-server/src/sessionManager.ts
@@ -1,8 +1,6 @@
import { RawData, WebSocket } from "ws";
import functions from "./functionHandlers";
-const OPENAI_API_KEY = process.env.OPENAI_API_KEY || "";
-
interface Session {
twilioConn?: WebSocket;
frontendConn?: WebSocket;
@@ -12,13 +10,15 @@ interface Session {
lastAssistantItem?: string;
responseStartTimestamp?: number;
latestMediaTimestamp?: number;
+ openAIApiKey?: string;
}
let session: Session = {};
-export function handleCallConnection(ws: WebSocket) {
+export function handleCallConnection(ws: WebSocket, openAIApiKey: string) {
cleanupConnection(session.twilioConn);
session.twilioConn = ws;
+ session.openAIApiKey = openAIApiKey;
ws.on("message", handleTwilioMessage);
ws.on("error", ws.close);
@@ -116,14 +116,15 @@ function handleFrontendMessage(data: RawData) {
}
function tryConnectModel() {
- if (!session.twilioConn || !session.streamSid) return;
+ if (!session.twilioConn || !session.streamSid || !session.openAIApiKey)
+ return;
if (isOpen(session.modelConn)) return;
session.modelConn = new WebSocket(
"wss://api.openai.com/v1/realtime?model=gpt-4o-realtime-preview-2024-12-17",
{
headers: {
- Authorization: `Bearer ${OPENAI_API_KEY}`,
+ Authorization: `Bearer ${session.openAIApiKey}`,
"OpenAI-Beta": "realtime=v1",
},
}