Deepika-05's picture
Update src/chatbot.py
e8ec46d verified
Raw
History Blame Contribute Delete
1.61 kB
from langchain_google_genai import ChatGoogleGenerativeAI
import streamlit as st
import os
# ---------- LOAD GEMINI MODEL ----------
@st.cache_resource
def load_llm():
llm = ChatGoogleGenerativeAI(
model="gemini-2.5-flash",
temperature=0.3,
google_api_key=os.environ.get("GOOGLE_API_KEY")
)
return llm
# ---------- CHAT RESPONSE FUNCTION ----------
def generate_chat_response(user_query, ctx):
llm = load_llm()
prompt = f"""
You are an advanced Crypto Market Analyst AI.
Your job is to explain Bitcoin market prediction clearly using trading logic.
================ MARKET DATA ================
Current Price: {ctx['current_price']}
ML Predicted Price: {ctx['ml_predicted_price']}
LLM Predicted Price: {ctx['llm_predicted_price']}
Final Hybrid Prediction: {ctx['final_hybrid_price']}
Prediction Direction: {ctx['direction']}
Model Confidence: {ctx['confidence']}
Hourly Forecast: {ctx['hourly_predict']}
7 Day Forecast: {ctx['seven_day_pred']}
Yesterday Close: {ctx.get('y_close')}
Yesterday High: {ctx.get('y_high')}
Monthly High: {ctx.get('month_high')}
Monthly Low: {ctx.get('month_low')}
Reason For Prediction:
{ctx['reason']}
================ RULES ================
- Explain in simple trading language
- Always justify direction using price logic
- Compare prediction with current price
- Mention risk when confidence is low
- If market is sideways → say no clear trade
- Do NOT guarantee profits
- Provide educational guidance only
User Question: {user_query}
Answer:
"""
response = llm.invoke(prompt).content
return response