|
from src.manual_entry import ManualEntry |
|
import streamlit as st |
|
from generate_questions.questions_generator import QuestionGenerator |
|
import google.generativeai as genai |
|
import os |
|
from src.feedback import feed_back |
|
from src.greetings import end_conversation, home_greetings |
|
import json |
|
|
|
genai.configure(api_key=os.getenv("GOOGLE_API_KEY")) |
|
model = genai.GenerativeModel("gemini-pro") |
|
|
|
chat = model.start_chat(history=[]) |
|
manual_entry = ManualEntry() |
|
questions_generator= QuestionGenerator() |
|
|
|
|
|
class EnterManually: |
|
def manual_entry(self): |
|
tech_stack = manual_entry.manual_entry_form() |
|
if tech_stack: |
|
st.session_state.tech_stack = tech_stack |
|
|
|
if "questions" not in st.session_state: |
|
st.session_state.questions = {} |
|
if "answers" not in st.session_state: |
|
st.session_state.answers = {} |
|
|
|
if st.session_state.tech_stack: |
|
if st.button("Generate Questions"): |
|
for tech in st.session_state.tech_stack: |
|
if tech.strip() not in st.session_state.questions: |
|
questions = questions_generator.generate_questions(chat, tech) |
|
st.session_state.questions[tech] = questions.split("\n") |
|
st.session_state.answers[tech] = [""] * len(st.session_state.questions[tech]) |
|
|
|
if st.session_state.questions: |
|
for tech, questions in st.session_state.questions.items(): |
|
st.write(f"### Technical Questions for {tech}") |
|
for idx, question in enumerate(questions): |
|
st.write(f"{idx + 1}. {question}") |
|
st.session_state.answers[tech][idx] = st.text_area( |
|
f"Answer for Q{idx + 1} ({tech})", |
|
value=st.session_state.answers[tech][idx], |
|
key=f"answer_{tech}_{idx}", |
|
) |
|
|
|
if st.button("Submit Answers"): |
|
greets = end_conversation() |
|
st.write(greets) |
|
output_data = [] |
|
for tech, questions in st.session_state.questions.items(): |
|
for idx, question in enumerate(questions): |
|
output_data.append({ |
|
"tech": tech, |
|
"question": question, |
|
"answer": st.session_state.answers[tech][idx] |
|
}) |
|
|
|
|
|
json_filename = "questions_answers.json" |
|
with open(json_filename, "w") as json_file: |
|
json.dump(output_data, json_file, indent=4) |
|
|
|
feed_back() |
|
|