BEAC / app.py
Sidoine's picture
Upload 2 files
9ceb97f verified
raw
history blame
3.01 kB
import streamlit as st
import json
import time
import requests
from langchain.chains import LLMChain
from langchain_core.prompts import ChatPromptTemplate, HumanMessagePromptTemplate, MessagesPlaceholder
from langchain_core.messages import SystemMessage
from langchain.chains.conversation.memory import ConversationBufferWindowMemory
from langchain_groq import ChatGroq
# Changement du logo et du titre de l'application
st.set_page_config(page_title="LOG-CHAT", page_icon="BEAC.jpg", layout="centered", menu_items=None)
st.image("BEAC.jpg")
# page de chargement
query_params = st.experimental_get_query_params()
page = query_params.get("page", ["chatbot"])[0]
st.markdown('<div class="content">', unsafe_allow_html=True)
if page == "chatbot":
st.header("LOG-CHAT")
def main():
groq_api_key = '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' # Use environment variables or secrets management for API keys
st.markdown('<div id="chatbot"></div>', unsafe_allow_html=True)
system_prompt = st.text_input("System prompt:", "You are a helpful assistant.")
model = st.selectbox('Choose a model', ['llama3-8b-8192', 'mixtral-8x7b-32768', 'gemma-7b-it'])
conversational_memory_length = st.slider('Conversational memory length:', 1, 10, value=5)
memory = ConversationBufferWindowMemory(k=conversational_memory_length, memory_key="chat_history", return_messages=True)
user_question = st.text_input("Ask me a question:")
send_question_to_ai = st.button("Send")
if 'chat_history' not in st.session_state:
st.session_state.chat_history = []
else:
for message in st.session_state.chat_history:
memory.save_context({'input': message['human']}, {'output': message['AI']})
groq_chat = ChatGroq(groq_api_key=groq_api_key, model_name=model)
if send_question_to_ai:
prompt = ChatPromptTemplate.from_messages(
[
SystemMessage(content=system_prompt),
MessagesPlaceholder(variable_name="chat_history"),
HumanMessagePromptTemplate.from_template("{human_input}")
]
)
conversation = LLMChain(
llm=groq_chat,
prompt=prompt,
verbose=True,
memory=memory
)
response = conversation.predict(human_input=user_question)
message = {'human': user_question, 'AI': response}
st.session_state.chat_history.append(message)
st.write("chatbot:", response)
if __name__ == "__main__":
main()
# Footer
st.markdown("""
<footer class="footer">
<p>Contact us: <a href="mailto:[email protected]">[email protected]</a></p>
<p>© 2024 Your Company. All rights reserved.</p>
</footer>
""", unsafe_allow_html=True)