-
Notifications
You must be signed in to change notification settings - Fork 0
/
app.py
106 lines (83 loc) · 3.02 KB
/
app.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
from flask import Flask, request, session
from random import choice
from flask import Flask, request, Response
import os
import openai
app = Flask(__name__)
openai.api_key = os.getenv('OPENAI_API_KEY')
completion = openai.Completion()
start_sequence = """\nQoom:"""
restart_sequence = """\n\nYou:"""
session_prompt = """Welcome! I am QoomBot, Qoom's very own AI based chatbot. How may I help you?
You: What do you do?
Qoom: I am an AI tool to help you navigate the Qoom platform.
You: How can I create a new project?
Qoom: Go to your coding space and click New Project. Enter a project name and select Create.
You: How can I learn to code?
Qoom: Go to qoom.io and navigate to the Tutorials page to learn how to code new projects. You can also go to your coding space and select the Qoom of the Week tab to join a workshop.
You: Can I get involved with the Qoom organization?
Qoom: Apply to Qoom's Creator Group sessions to start getting involved.
You: Can you build me a website?
Qoom: I'm afraid I'm not able to help you with that.
You: What should I do first?
Qoom: You should start by creating an account. You can access tutorials, your coding space, and new opportunities.
You:"""
stop = "\n"
def ask(question, chat_log=None):
prompt_text = f"{chat_log}{restart_sequence}: {question}{start_sequence}:"
response = openai.Completion.create(
engine="davinci",
prompt=prompt_text,
temperature=0.7,
max_tokens=300,
top_p=1,
frequency_penalty=0,
presence_penalty=0.1,
stop=[stop],
)
story = response["choices"][0]["text"]
return str(story)
def append_interaction_to_chat_log(question, answer, chat_log=None):
if chat_log is None:
chat_log = session_prompt
return f"{chat_log}{restart_sequence} {question}{start_sequence}{answer}"
def root_dir():
return os.path.abspath(os.path.dirname(__file__))
def get_file(filename):
try:
src = os.path.join(root_dir(), filename)
return open(src).read()
except IOError as exc:
return str(exc)
app.config["SECRET_KEY"] = "generate1241235jasdaRandomstring"
@app.route("/qoombot/answer", methods=["POST"])
def qoom():
incoming_msg = request.get_json()["question"]
print(incoming_msg)
chat_log = session.get("chat_log")
answer = ask(incoming_msg, chat_log)
return answer
@app.route("/", methods=['GET', 'POST'])
def home():
content = get_file('index.html')
return Response(content, mimetype="text/html")
@app.route("/style.css", methods=['GET'])
def style():
content = get_file('style.css')
return Response(content, mimetype="text/css")
@app.route("/script.js", methods=['GET'])
def scriptjs():
content = get_file('script.js')
return Response(content, mimetype="text/js")
#
#@app.route("/user", methods=['GET'])
#def user():
# content = get_file('static/user.png')
# return Response(content, mimetype="image/png")
#@app.route("/qoomlogo", methods=['GET'])
#def qoomlogo():
# content = get_file('static/qoomlogo.jpeg')
# return Response(content, mimetype="image/jpeg")
#
if __name__ == "__main__":
app.run(debug=True)