| import gradio as gr |
| import requests |
| import os |
|
|
| GROQ_API_KEY = "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" |
| HEADERS = {"Authorization": f"Bearer {GROQ_API_KEY}"} |
|
|
|
|
| suggested_questions = [ |
| "How is my TFSA performing?", |
| "What are some good stock picks?", |
| "Compare investment strategies.", |
| "Analyze stock volatility." |
| ] |
|
|
| def ask_groq(query, language="English"): |
| api_url = "https://api.groq.com/v1/chat/completions" |
| payload = { |
| "model": "groq-llm", |
| "messages": [{"role": "user", "content": query}], |
| "max_tokens": 200, |
| "temperature": 0.7 |
| } |
| |
| response = requests.post(api_url, headers=HEADERS, json=payload) |
| if response.status_code == 200: |
| reply = response.json().get("choices", [{}])[0].get("message", {}).get("content", "No response.") |
| return f"{reply}\n\n(Language: {language})" |
| else: |
| return "Error: Could not retrieve response." |
|
|
| def chatbot(user_input, language="English"): |
| if user_input in suggested_questions: |
| return ask_groq(user_input, language) |
| return ask_groq(user_input, language) |
|
|
| with gr.Blocks() as demo: |
| gr.Markdown("# TFSA Investment Chatbot 💰") |
| |
| language = gr.Radio(["English", "Français"], label="Select Language", value="English") |
| |
| with gr.Row(): |
| input_text = gr.Textbox(label="Ask a question", placeholder="Type your question here...") |
| submit_btn = gr.Button("Ask") |
| |
| response_output = gr.Textbox(label="Response", interactive=False) |
| |
| gr.Markdown("### Suggested Questions:") |
| btns = [gr.Button(q) for q in suggested_questions] |
|
|
| |
| submit_btn.click(fn=chatbot, inputs=[input_text, language], outputs=response_output) |
| |
| for btn in btns: |
| btn.click(fn=chatbot, inputs=[btn, language], outputs=response_output) |
|
|
|
|
| if __name__ == "__main__": |
| demo.launch() |
|
|