Skip to content

Commit

Permalink
Initial commit to add API option
Browse files Browse the repository at this point in the history
  • Loading branch information
ScottLL committed Mar 21, 2023
1 parent c3ed061 commit 8497fd3
Show file tree
Hide file tree
Showing 4 changed files with 48 additions and 22 deletions.
14 changes: 9 additions & 5 deletions app.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,9 @@ def translate():
text = data['text']
input_language = data['input_language']
target_language = data['target_language']
translated_text = main.translate(text, input_language, target_language)
api_key = data['api_key'] # Add this line
# Add this line
translated_text = main.translate(text, input_language, target_language, api_key) # Pass the API key here
conversation_history.append((text, translated_text))
return jsonify({'translated_text': translated_text})

Expand All @@ -39,10 +41,12 @@ def save_conversation():

@app.route('/summarize-conversation', methods=['POST'])
def summarize_conversation():
conversation = json.loads(request.json['conversation'])
summary_original = main.generate_summary(conversation)
summary_translated = main.translate(summary_original, main.detect_language(summary_original), request.json['target_language'])
return jsonify({'summary_original': summary_original, 'summary_translated': summary_translated})
api_key = request.json['api_key']
summary_original = main.generate_summary('\n'.join([conv[0] for conv in json.loads(request.json['conversation'])]), api_key=api_key)

summary_translated = main.translate(summary_original, main.detect_language(summary_original), request.json['target_language'], api_key)
return jsonify({'summary': {'original': summary_original, 'translated': summary_translated}})



if __name__ == '__main__':
Expand Down
16 changes: 11 additions & 5 deletions main.py
Original file line number Diff line number Diff line change
@@ -1,20 +1,24 @@
from googletrans import Translator, LANGUAGES
import datetime
import openai
import os
# import os
from dotenv import load_dotenv

load_dotenv()
# load_dotenv()


openai.api_key = os.getenv('OPENAI_API_KEY')
# openai.api_key = os.getenv('OPENAI_API_KEY')

def detect_language(text: str):
translator = Translator()
detected_language = translator.detect(text)
return detected_language.lang

def translate(text: str, input_language: str, target_language: str) -> str:
def translate(text: str, input_language: str, target_language: str, api_key: str) -> str:
# Add the following two lines
import openai
openai.api_key = api_key

if input_language not in LANGUAGES.keys():
input_language = detect_language(text)

Expand All @@ -29,6 +33,7 @@ def translate(text: str, input_language: str, target_language: str) -> str:
else:
return "Translation failed"


def save_conversation(conversation_history):
filename = datetime.datetime.now().strftime("%Y-%m-%d_%H-%M-%S") + ".txt"
with open(filename, "w") as f:
Expand All @@ -38,7 +43,8 @@ def save_conversation(conversation_history):
f.write("\n")


def generate_summary(text: str, max_tokens: int = 300) -> str:
def generate_summary(text: str, max_tokens: int = 300, api_key=None) -> str:
openai.api_key = api_key
prompt = f"Summarize the following conversation into bullet points, and make each bullet points in one line: {text} Summary:"
message_log = [{"role": "user","content": prompt}]
response = openai.ChatCompletion.create(
Expand Down
31 changes: 19 additions & 12 deletions static/js/script.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,16 +15,20 @@ function translateText(text) {
var input_language = document.getElementById("input-language-select").value;
var target_language = document.getElementById("translate-language-select").value;

// Add line breaks after each bullet point in the original text
text = text.replace(/- /g, "\n- ");
// Get the API key input value
var apiKey = document.getElementById("apikey").value;

fetch("/translate", {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify({ text: text, input_language: input_language, target_language: target_language }),

body: JSON.stringify({
text: text,
input_language: input_language,
target_language: target_language,
api_key: apiKey, // Include the API key in the request body
}),
})
.then((response) => response.json())
.then((response) => {
Expand All @@ -34,8 +38,6 @@ function translateText(text) {

document.getElementById("translated-text").innerHTML = translatedText;

// Add line breaks after each bullet point in the original text
text = text.replace(/\n/g, "<br>");
// Add line breaks after each bullet point in the translated text
translatedText = translatedText.replace(/\n/g, "<br>");

Expand Down Expand Up @@ -112,23 +114,29 @@ function saveConversation() {
}
}



function summarizeConversation() {
var target_language = document.getElementById("translate-language-select").value;

// Get the API key input value
var apiKey = document.getElementById("apikey").value;

fetch("/summarize-conversation", {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify({
target_language: target_language,
conversation: JSON.stringify(conversationHistory).replace(/- /g, "\n- ")
body: JSON.stringify({
target_language: target_language,
conversation: JSON.stringify(conversationHistory).replace(/- /g, "\n- "),
api_key: apiKey, // Include the API key in the request body
}),
})
.then((response) => response.json())
.then((response) => {
var summary_original = response.summary_original.replace(/\n/g, "<br>");
var summary_translated = response.summary_translated.replace(/\n/g, "<br>");
var summary_original = response.summary.original.replace(/\n/g, "<br>");
var summary_translated = response.summary.translated.replace(/\n/g, "<br>");

// Display the summaries in the summary history
const summaryHistory = document.getElementById("summary-history");
Expand Down Expand Up @@ -157,7 +165,6 @@ function summarizeConversation() {




document
.getElementById("input-language-select")
.addEventListener("change", updateRecognitionLanguage);
Expand Down
9 changes: 9 additions & 0 deletions templates/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -57,8 +57,14 @@ <h2>Conversation History:</h2>
<button id="save-conversation-btn">Save Conversation</button>

</div>

</div>


<div class="history-box">
<label for="apikey">OpenAI API Key:</label>
<input type="password" id="apikey" name="apikey" required>

<div id="summary-history">
<h2>Summary History</h2>
<ul id="summary-list">
Expand All @@ -71,6 +77,9 @@ <h2>Summary History</h2>
</main>
</div>




<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script src="{{ url_for('static', filename='js/script.js') }}"></script>
</body>
Expand Down

0 comments on commit 8497fd3

Please sign in to comment.