File size: 3,014 Bytes
a4091ab
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
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:yourname@example.com">yourname@example.com</a></p>

        <p>© 2024 Your Company. All rights reserved.</p>

    </footer>

""", unsafe_allow_html=True)