import streamlit as st from langchain_groq import ChatGroq from apps.agent.constant import GROQ_API_KEY, MODEL_GROQ, CONFIG from apps.agent.graph import Agent llm = ChatGroq(model=MODEL_GROQ, api_key=GROQ_API_KEY, temperature=0.1) agent = Agent(llm=llm) def get_response(query: str): response = agent.graph.invoke({"messages": ("user", query)}, CONFIG) return response["messages"][-1].content with st.sidebar: st.header("Prof of Concept") st.markdown( """ This is just a prototype chatbot, the data taken is based on the following sites: Xano Documentation - https://docs.xano.com/about - https://releases.xano.com/?_gl=1*sifgtw*_ga*MTI5NTY3MTk5NS4xNzMwNjMzNjY3*_ga_EJWDZRK3CG*MTczMDgwNjg3Mi43LjEuMTczMDgwNjkyMy45LjAuODUyNzA5OTA4 - https://docs.xano.com/onboarding-tutorial-reference - https://docs.xano.com/faq - https://docs.xano.com/about - https://docs.xano.com/what-xano-includes - https://docs.xano.com/what-xano-includes/instance - https://docs.xano.com/what-xano-includes/workspace - https://docs.xano.com/database/triggers - https://docs.xano.com/fundamentals/the-development-life-cycle WeWeb Documentation - https://docs.weweb.io/start-here/welcome.html - https://docs.weweb.io/start-here/frequently-asked-questions.html - https://docs.weweb.io/editor/intro-to-the-editor.html - https://docs.weweb.io/editor/intro-to-html-css.html - https://docs.weweb.io/editor/how-to-use-the-add-panel.html - https://docs.weweb.io/editor/logs.html - https://docs.weweb.io/editor/copilot/import-figma-designs.html - https://docs.weweb.io/editor/app-settings/app-settings.html - https://docs.weweb.io/editor/app-settings/pwa.html """ ) st.header("Example Question") st.markdown( """ Note: When asking a question, always add the word **xeno** or **weweb** so that the agent can easily find an accurate answer. - What is PWA? and how enabling mobile app features in Weweb? - How installing a PWA on a phone in WeWeb? - Will the Marketplace have templates that I can use to start my backend with? - Can I scale my backend with Xano? """ ) st.title("AI Agent Assistance") if "messages" not in st.session_state: st.session_state.messages = [] for message in st.session_state.messages: role = message.get("role", "assistant") with st.chat_message(role): if "output" in message: st.markdown(message["output"]) if prompt := st.chat_input("What do you want to know?"): st.chat_message("user").markdown(prompt) st.session_state.messages.append({"role": "user", "output": prompt}) with st.spinner("Searching for an answer..."): output_text = get_response(prompt) print("Output", output_text) # Display assistant response and SQL query st.chat_message("assistant").markdown(output_text) # Kenapa ini tidak muncul di UI? # Append assistant response to session state st.session_state.messages.append( { "role": "assistant", "output": output_text, } )