diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..827d37b --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +**/.venv/ +**/__pycache__/ diff --git a/speech-speech/backend/.env b/speech-speech/backend/.env new file mode 100644 index 0000000..b596733 --- /dev/null +++ b/speech-speech/backend/.env @@ -0,0 +1 @@ +OPENAI_API_KEY=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 diff --git a/speech-speech/backend/api.py b/speech-speech/backend/api.py new file mode 100644 index 0000000..a9e54f4 --- /dev/null +++ b/speech-speech/backend/api.py @@ -0,0 +1,53 @@ +from openai import OpenAI +from fastapi import FastAPI, File, Response, Request +from fastapi.responses import JSONResponse +from fastapi.encoders import jsonable_encoder +from json import dumps +from pydantic import BaseModel +import filetype +import whisper + + +app = FastAPI() +openAI_clinet = OpenAI() +model = whisper.load_model("base") + + +class ConversationMessege(BaseModel): + role: str + content: str + + +class Conversation(BaseModel): + messages: list[ConversationMessege] + + +@app.post("/get-text") +def get_text(response: Response, audio: bytes = File()): + response.headers["Access-Control-Allow-Origin"] = "*" + with open("audio", "wb") as f: + f.write(audio) + print(len(audio)) + # transcript = openAI_clinet.audio.transcriptions.create( + # model="whisper-1", + # file=audio, + # response_format="text", + # RequestBody + # ) + result = model.transcribe("audio") + data = {"len": len(audio), "user-transcript": result["text"]} + return data + + +@app.post("/conversation") +async def get_next_response(request: Request, response: Response): + response.headers["Access-Control-Allow-Origin"] = "*" + messages = await request.json() + res = openAI_clinet.chat.completions.create( + model="gpt-3.5-turbo", + messages=messages, + ) + res_msg = res.choices[0].message.content + role = res.choices[0].message.role + print(res_msg) + return {"role": role, "content": res_msg} diff --git a/speech-speech/backend/audio b/speech-speech/backend/audio new file mode 100644 index 0000000..38793cf Binary files /dev/null and b/speech-speech/backend/audio differ diff --git a/speech-speech/backend/requirements.txt b/speech-speech/backend/requirements.txt new file mode 100644 index 0000000..e3575b7 --- /dev/null +++ b/speech-speech/backend/requirements.txt @@ -0,0 +1,4 @@ +openai +fastapi +uvicorn +python-multipart diff --git a/speech-speech/.eslintrc.cjs b/speech-speech/frontend/.eslintrc.cjs similarity index 100% rename from speech-speech/.eslintrc.cjs rename to speech-speech/frontend/.eslintrc.cjs