JARVISXIRONMAN commited on
Commit
3598b9b
·
verified ·
1 Parent(s): eb24ab4

Create components/validator.py

Browse files
Files changed (1) hide show
  1. components/validator.py +22 -18
components/validator.py CHANGED
@@ -1,32 +1,36 @@
1
  # components/validator.py
2
 
3
  import streamlit as st
4
- import os
 
5
  from langchain_groq import ChatGroq
6
- from langchain.prompts import ChatPromptTemplate
7
- from langchain_core.output_parsers import StrOutputParser
8
  from utils.prompts import VALIDATOR_PROMPT
9
 
 
10
  def run_validator():
11
- st.header("✅ Business Model Validator")
12
 
13
- if "bmc_answers" not in st.session_state:
14
- st.warning("⚠️ Please complete the Canvas Assistant first.")
 
15
  return
16
 
17
- st.markdown("Reviewing your business model canvas for strengths and weaknesses...")
 
 
 
 
18
 
19
- with st.spinner("Evaluating each canvas block..."):
20
- llm = ChatGroq(
21
- temperature=0.4,
22
- model_name="llama3-70b-8192",
23
- groq_api_key=os.getenv("GROQ_API_KEY")
24
  )
25
 
26
- prompt = ChatPromptTemplate.from_template(VALIDATOR_PROMPT)
27
- chain = prompt | llm | StrOutputParser()
28
-
29
- validation_result = chain.invoke({"input": st.session_state.bmc_answers})
30
 
31
- st.subheader("📋 Validation Feedback")
32
- st.write(validation_result)
 
1
  # components/validator.py
2
 
3
  import streamlit as st
4
+ from langchain_core.prompts import ChatPromptTemplate
5
+ from langchain_core.runnables import Runnable
6
  from langchain_groq import ChatGroq
7
+ from utils.session import get_canvas_data
 
8
  from utils.prompts import VALIDATOR_PROMPT
9
 
10
+
11
  def run_validator():
12
+ st.header("✅ Validate Your Canvas")
13
 
14
+ canvas = get_canvas_data()
15
+ if not canvas:
16
+ st.warning("Please complete the Canvas Assistant first.")
17
  return
18
 
19
+ # Display user input for reference
20
+ st.subheader("🧾 Your Canvas Summary")
21
+ for section, content in canvas.items():
22
+ st.markdown(f"**{section}**")
23
+ st.info(content)
24
 
25
+ with st.spinner("Analyzing your canvas..."):
26
+ # Prompt and chain setup
27
+ prompt = ChatPromptTemplate.from_template(
28
+ VALIDATOR_PROMPT + "\n\nCanvas Data:\n{input}"
 
29
  )
30
 
31
+ chain: Runnable = prompt | ChatGroq(model="llama3-8b-8192", temperature=0.3)
32
+ full_canvas_text = "\n".join([f"{k}: {v}" for k, v in canvas.items()])
33
+ validation_result = chain.invoke({"input": full_canvas_text})
 
34
 
35
+ st.subheader("📊 Validation Result")
36
+ st.success(validation_result.content)