aquibmoin commited on
Commit
e2c3d90
1 Parent(s): a40023d

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +23 -11
app.py CHANGED
@@ -14,6 +14,9 @@ bi_model = AutoModel.from_pretrained(bi_encoder_model_name)
14
  api_key = os.getenv('OPENAI_API_KEY')
15
  client = OpenAI(api_key=api_key)
16
 
 
 
 
17
  def encode_text(text):
18
  inputs = bi_tokenizer(text, return_tensors='pt', padding=True, truncation=True, max_length=128)
19
  outputs = bi_model(**inputs)
@@ -27,12 +30,16 @@ def retrieve_relevant_context(user_input, context_texts):
27
  most_relevant_idx = np.argmax(similarities)
28
  return context_texts[most_relevant_idx]
29
 
30
- def generate_response(user_input, relevant_context):
31
- combined_input = f"Context: {relevant_context}\nQuestion: {user_input}\nAnswer:"
 
 
 
32
 
33
  response = client.chat.completions.create(
34
  model="gpt-4",
35
  messages=[
 
36
  {"role": "user", "content": combined_input}
37
  ],
38
  max_tokens=150,
@@ -41,11 +48,14 @@ def generate_response(user_input, relevant_context):
41
  frequency_penalty=0.5,
42
  presence_penalty=0.0
43
  )
44
- return response.choices[0].message.content.strip()
45
-
46
- def chatbot(user_input, context=""):
47
- context_texts = context.split("\n")
48
- relevant_context = retrieve_relevant_context(user_input, context_texts) if context else ""
 
 
 
49
  response = generate_response(user_input, relevant_context)
50
  return response
51
 
@@ -53,12 +63,13 @@ def chatbot(user_input, context=""):
53
  iface = gr.Interface(
54
  fn=chatbot,
55
  inputs=[
56
- gr.Textbox(lines=2, placeholder="Enter your message here..."),
57
- gr.Textbox(lines=5, placeholder="Enter context here, separated by new lines...")
 
58
  ],
59
  outputs="text",
60
- title="Context-Aware Dynamic Response Chatbot",
61
- description="A chatbot using a NASA-specific bi-encoder model to understand the input context and GPT-4 to generate dynamic responses. Enter context to get more refined and relevant responses."
62
  )
63
 
64
  # Launch the interface
@@ -73,3 +84,4 @@ iface.launch(share=True)
73
 
74
 
75
 
 
 
14
  api_key = os.getenv('OPENAI_API_KEY')
15
  client = OpenAI(api_key=api_key)
16
 
17
+ # Define a system message to introduce Exos
18
+ system_message = "You are Exos, a helpful assistant specializing in Exoplanet research. Provide detailed and accurate responses related to Exoplanet research."
19
+
20
  def encode_text(text):
21
  inputs = bi_tokenizer(text, return_tensors='pt', padding=True, truncation=True, max_length=128)
22
  outputs = bi_model(**inputs)
 
30
  most_relevant_idx = np.argmax(similarities)
31
  return context_texts[most_relevant_idx]
32
 
33
+ def generate_response(user_input, relevant_context=""):
34
+ if relevant_context:
35
+ combined_input = f"Context: {relevant_context}\nQuestion: {user_input}\nAnswer:"
36
+ else:
37
+ combined_input = f"Question: {user_input}\nAnswer:"
38
 
39
  response = client.chat.completions.create(
40
  model="gpt-4",
41
  messages=[
42
+ {"role": "system", "content": system_message},
43
  {"role": "user", "content": combined_input}
44
  ],
45
  max_tokens=150,
 
48
  frequency_penalty=0.5,
49
  presence_penalty=0.0
50
  )
51
+ return response.choices[0].message['content'].strip()
52
+
53
+ def chatbot(user_input, context="", use_encoder=False):
54
+ if use_encoder and context:
55
+ context_texts = context.split("\n")
56
+ relevant_context = retrieve_relevant_context(user_input, context_texts)
57
+ else:
58
+ relevant_context = ""
59
  response = generate_response(user_input, relevant_context)
60
  return response
61
 
 
63
  iface = gr.Interface(
64
  fn=chatbot,
65
  inputs=[
66
+ gr.Textbox(lines=2, placeholder="Enter your message here...", label="Your Question"),
67
+ gr.Textbox(lines=5, placeholder="Enter context here, separated by new lines...", label="Context (Optional)"),
68
+ gr.Checkbox(label="Use Bi-Encoder for Context")
69
  ],
70
  outputs="text",
71
+ title="Exos - Your Exoplanet Research Assistant",
72
+ description="Exos is a helpful assistant specializing in Exoplanet research. Provide context to get more refined and relevant responses.",
73
  )
74
 
75
  # Launch the interface
 
84
 
85
 
86
 
87
+