JARVISXIRONMAN commited on
Commit
f9cb7b7
·
verified ·
1 Parent(s): 575b2d9

Create validator.py

Browse files
Files changed (1) hide show
  1. components/validator.py +27 -13
components/validator.py CHANGED
@@ -1,22 +1,36 @@
 
 
1
  import streamlit as st
 
 
2
  from langchain_groq import ChatGroq
3
- from langchain.prompts import ChatPromptTemplate
4
- from utils.prompts import VALIDATOR_PROMPT
5
  from utils.session import get_canvas_data
 
 
6
 
7
  def run_validator():
8
- st.header("✅ Validate Canvas")
9
 
10
- canvas_data = get_canvas_data()
11
- if not canvas_data or any(not v.strip() for v in canvas_data.values()):
12
  st.warning("Please complete the Canvas Assistant first.")
13
  return
14
 
15
- if st.button("Validate"):
16
- with st.spinner("Validating canvas..."):
17
- prompt = ChatPromptTemplate.from_template(VALIDATOR_PROMPT)
18
- chain = prompt | ChatGroq(model="llama3-8b-8192", temperature=0.3)
19
- full_canvas = "\n".join([f"{k}: {v}" for k, v in canvas_data.items()])
20
- result = chain.invoke({"input": full_canvas})
21
- st.subheader("Validation Results")
22
- st.markdown(result.content)
 
 
 
 
 
 
 
 
 
 
 
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)