call_backend / app.py
Soumyajit94298's picture
commit app
d0796dd
from flask import Flask, request, jsonify
from aiohttp import web, WSMsgType
from flask_cors import CORS
import requests
import os
import PyPDF2 # <-- new import
app = Flask(__name__)
CORS(app)
OPENAI_API_URL = "https://api.openai.com/v1/realtime"
OPENAI_API_KEY = os.getenv("OPENAI_API_KEY")
if not OPENAI_API_KEY:
raise ValueError("OPENAI_API_KEY environment variable not set!")
# Function to extract text from your PDF
def extract_pdf_text(pdf_path):
pdf_text = ""
with open(pdf_path, 'rb') as file:
reader = PyPDF2.PdfReader(file)
for page in reader.pages:
pdf_text += page.extract_text()
return pdf_text
# Preload your PDF content (or load dynamically if preferred)
PDF_PATH = "resume.pdf" # <-- Path to your PDF
pdf_content = extract_pdf_text(PDF_PATH)
full_text="you are Soumyajit's AI assisstant, you greet by saying- how can I help you about Soumyajit, answer by wrapping the answers about soumyajit, and keep it as short as possible, "
full_text+=pdf_content
@app.route('/')
def home():
return "Flask API is running!"
@app.route('/api/rtc-connect', methods=['POST'])
def connect_rtc():
body = request.get_data(as_text=True)
# Build the OpenAI API request URL
content=f''
url = f"{OPENAI_API_URL}?model=gpt-4o-realtime-preview-2024-12-17&instructions={full_text}&voice=ash"
headers = {
"Authorization": f"Bearer {OPENAI_API_KEY}",
"Content-Type": "application/sdp"
}
# Send POST request to the OpenAI API
response = requests.post(url, headers=headers, data=body)
return response.content, 200, {'Content-Type': 'application/sdp'}
if __name__ == '__main__':
port = int(os.environ.get("PORT", 7860))
app.run(port=port, host="0.0.0.0")