JARVISXIRONMAN commited on
Commit
ff228a3
·
verified ·
1 Parent(s): a81afcc

Create components/canvas_chat.py

Browse files
Files changed (1) hide show
  1. components/canvas_chat.py +23 -37
components/canvas_chat.py CHANGED
@@ -1,47 +1,33 @@
1
- import os
2
  import streamlit as st
3
- from langchain.prompts import ChatPromptTemplate
 
4
  from langchain_core.output_parsers import StrOutputParser
5
  from langchain_groq import ChatGroq
6
- from utils.prompts import CANVAS_PROMPT
7
- from utils.session import load_json_state, save_json_state
8
-
9
 
10
  def run_canvas_chat():
11
- st.header("🧠 Canvas Assistant")
12
 
13
- canvas_data = load_json_state("canvas_data.json", default={})
 
14
 
15
- if "canvas_stage" not in st.session_state:
16
- st.session_state.canvas_stage = "ask_idea"
17
 
18
- if st.session_state.canvas_stage == "ask_idea":
19
- user_idea = st.text_input("What's your business idea?")
20
- if st.button("Submit Idea"):
21
- if user_idea.strip() != "":
22
- st.session_state.canvas_stage = "generating_canvas"
23
- st.session_state.business_idea = user_idea.strip()
24
- save_json_state("canvas_data.json", {"business_idea": user_idea.strip()})
25
- st.rerun()
 
26
 
27
- elif st.session_state.canvas_stage == "generating_canvas":
28
- with st.spinner("Generating canvas based on your idea..."):
29
- prompt = ChatPromptTemplate.from_messages([
30
- ("system", CANVAS_PROMPT),
31
- ("user", f"My business idea is: {st.session_state.business_idea}")
32
- ])
33
- chain = prompt | ChatGroq(model_name="llama3-8b-8192", temperature=0.4)
34
- response = chain.invoke({"input": st.session_state.business_idea})
35
- canvas_output = response.content.strip()
36
- canvas_data["canvas_output"] = canvas_output
37
- save_json_state("canvas_data.json", canvas_data)
38
- st.session_state.canvas_stage = "display_canvas"
39
- st.rerun()
40
 
41
- elif st.session_state.canvas_stage == "display_canvas":
42
- st.subheader("📄 Business Model Canvas")
43
- canvas_output = canvas_data.get("canvas_output", "No canvas generated.")
44
- st.markdown(canvas_output)
45
- if st.button("Edit or Regenerate"):
46
- st.session_state.canvas_stage = "ask_idea"
47
- st.rerun()
 
 
1
  import streamlit as st
2
+ from langchain_core.prompts import ChatPromptTemplate
3
+ from langchain_core.runnables import RunnableLambda, RunnablePassthrough
4
  from langchain_core.output_parsers import StrOutputParser
5
  from langchain_groq import ChatGroq
6
+ from utils.prompts import STRATEGY_PROMPT
7
+ import time
 
8
 
9
  def run_canvas_chat():
10
+ st.title("🧠 Canvas Assistant")
11
 
12
+ if "canvas_data" not in st.session_state:
13
+ st.session_state.canvas_data = {}
14
 
15
+ with st.form("canvas_form"):
16
+ st.header("Complete the Business Model Canvas")
17
 
18
+ st.session_state.canvas_data["customer_segments"] = st.text_area("Customer Segments")
19
+ st.session_state.canvas_data["value_propositions"] = st.text_area("Value Propositions")
20
+ st.session_state.canvas_data["channels"] = st.text_area("Channels")
21
+ st.session_state.canvas_data["customer_relationships"] = st.text_area("Customer Relationships")
22
+ st.session_state.canvas_data["revenue_streams"] = st.text_area("Revenue Streams")
23
+ st.session_state.canvas_data["key_resources"] = st.text_area("Key Resources")
24
+ st.session_state.canvas_data["key_activities"] = st.text_area("Key Activities")
25
+ st.session_state.canvas_data["key_partnerships"] = st.text_area("Key Partnerships")
26
+ st.session_state.canvas_data["cost_structure"] = st.text_area("Cost Structure")
27
 
28
+ submitted = st.form_submit_button("Submit Canvas")
 
 
 
 
 
 
 
 
 
 
 
 
29
 
30
+ if submitted:
31
+ st.success(" Canvas information saved!")
32
+ time.sleep(1)
33
+ st.rerun()