Spaces:
Sleeping
Sleeping
| import os | |
| import streamlit as st | |
| from datasets import load_dataset | |
| from huggingface_hub import InferenceClient | |
| # Get the API key from the environment variable | |
| api_key = os.getenv("HF_API_KEY") | |
| client = InferenceClient(api_key=api_key) | |
| # Load the dataset | |
| dataset = load_dataset("andreska/adregadocs", split="test") | |
| # Function to read the content from the dataset | |
| def read_dataset(dataset): | |
| text = [] | |
| for item in dataset: | |
| text.append(item['text']) | |
| return "\n".join(text) | |
| context = read_dataset(dataset) | |
| # Inject custom CSS to change the background color to yellow | |
| st.markdown( | |
| """ | |
| <style> | |
| .scrollable-div { | |
| max-height: 300px; | |
| overflow-y: auto; | |
| padding: 10px; | |
| border: 1px solid #ccc; | |
| background-color: #f9f9f9; } | |
| </style> | |
| """, | |
| unsafe_allow_html=True | |
| ) | |
| def handle_submit(): | |
| user_input = st.session_state.user_input | |
| st.session_state.user_input = "" | |
| if user_input: | |
| if st.session_state.include_context: | |
| messages = [ | |
| {"role": "system", "content": f"Context: {context}"}, | |
| {"role": "user", "content": user_input} | |
| ] | |
| else: | |
| messages = [ | |
| {"role": "system", "content": f"Context: Adrega is a powerful project management and reporting tool. It can show Gantt diagrams, S-Curves, Tabular reports and various charts in single reports, report bundles or in a customizable dashboard."}, | |
| {"role": "user", "content": user_input} | |
| ] | |
| completion = client.chat.completions.create( | |
| #model="Qwen/Qwen2.5-72B-Instruct", | |
| #model="Qwen/Qwen2.5-Coder-32B-Instruct", | |
| model="HuggingFaceTB/SmolLM2-1.7B-Instruct", | |
| messages=messages, | |
| max_tokens=1000 | |
| ) | |
| answer = completion.choices[0].message['content'] | |
| st.session_state.conversation = f"<p><strong>User:</strong> {user_input}</p><p><strong>Adrega AI:</strong> {answer}</p>" + st.session_state.conversation | |
| else: | |
| st.session_state.conversation(f"<p><strong>Adrega AI:</strong>: Please enter a question.") | |
| #st.title("Adrega AI Help") | |
| st.text_input('Ask me a question', key='user_input', on_change=handle_submit) | |
| col1, col2 = st.columns(2) | |
| with col1: | |
| if st.button("Ask"): | |
| handle_submit() | |
| if 'conversation' not in st.session_state: | |
| st.session_state.conversation = "" | |
| with col2: | |
| st.session_state.include_context = st.checkbox('Search in Help') | |
| st.markdown(f'<div class="scrollable-div">{st.session_state.conversation}</div>', unsafe_allow_html=True) | |