Spaces:
Runtime error
Runtime error
Upload 6 files
Browse files
Dockerfile
CHANGED
|
@@ -22,6 +22,8 @@ EXPOSE 7860
|
|
| 22 |
# Set environment variables
|
| 23 |
ENV CREWAI_TELEMETRY_ENABLED=false
|
| 24 |
ENV CREWAI_STORAGE_DIR=/tmp/crewai
|
|
|
|
|
|
|
| 25 |
ENV HF_HOME=/tmp/huggingface_cache
|
| 26 |
ENV TRANSFORMERS_CACHE=/tmp/huggingface_cache
|
| 27 |
ENV HF_HUB_CACHE=/tmp/huggingface_cache
|
|
@@ -32,6 +34,7 @@ ENV GRADIO_SERVER_PORT=7860
|
|
| 32 |
RUN mkdir -p /tmp/crewai
|
| 33 |
RUN mkdir -p /tmp/huggingface_cache
|
| 34 |
RUN chmod 777 /tmp/huggingface_cache
|
|
|
|
| 35 |
|
| 36 |
# Command to run the Gradio app
|
| 37 |
CMD ["python", "app.py"]
|
|
|
|
| 22 |
# Set environment variables
|
| 23 |
ENV CREWAI_TELEMETRY_ENABLED=false
|
| 24 |
ENV CREWAI_STORAGE_DIR=/tmp/crewai
|
| 25 |
+
ENV CREWAI_DB_PATH=/tmp/crewai/crewai.db
|
| 26 |
+
ENV CREWAI_MEMORY_ENABLED=false
|
| 27 |
ENV HF_HOME=/tmp/huggingface_cache
|
| 28 |
ENV TRANSFORMERS_CACHE=/tmp/huggingface_cache
|
| 29 |
ENV HF_HUB_CACHE=/tmp/huggingface_cache
|
|
|
|
| 34 |
RUN mkdir -p /tmp/crewai
|
| 35 |
RUN mkdir -p /tmp/huggingface_cache
|
| 36 |
RUN chmod 777 /tmp/huggingface_cache
|
| 37 |
+
RUN chmod 777 /tmp/crewai
|
| 38 |
|
| 39 |
# Command to run the Gradio app
|
| 40 |
CMD ["python", "app.py"]
|
agents.py
CHANGED
|
@@ -4,6 +4,8 @@ import os
|
|
| 4 |
# Set CrewAI storage directory to something writable BEFORE any imports
|
| 5 |
os.environ["CREWAI_STORAGE_DIR"] = "/tmp/crewai"
|
| 6 |
os.environ["CREWAI_TELEMETRY_ENABLED"] = "false"
|
|
|
|
|
|
|
| 7 |
|
| 8 |
from utils import gemini_llm
|
| 9 |
from crewai import Agent
|
|
|
|
| 4 |
# Set CrewAI storage directory to something writable BEFORE any imports
|
| 5 |
os.environ["CREWAI_STORAGE_DIR"] = "/tmp/crewai"
|
| 6 |
os.environ["CREWAI_TELEMETRY_ENABLED"] = "false"
|
| 7 |
+
os.environ["CREWAI_DB_PATH"] = "/tmp/crewai/crewai.db"
|
| 8 |
+
os.environ["CREWAI_MEMORY_ENABLED"] = "false"
|
| 9 |
|
| 10 |
from utils import gemini_llm
|
| 11 |
from crewai import Agent
|
app.py
CHANGED
|
@@ -4,6 +4,8 @@ import os
|
|
| 4 |
# Set CrewAI storage directory to something writable BEFORE any imports
|
| 5 |
os.environ["CREWAI_STORAGE_DIR"] = "/tmp/crewai"
|
| 6 |
os.environ["CREWAI_TELEMETRY_ENABLED"] = "false"
|
|
|
|
|
|
|
| 7 |
|
| 8 |
# Create the directory if it doesn't exist
|
| 9 |
os.makedirs("/tmp/crewai", exist_ok=True)
|
|
|
|
| 4 |
# Set CrewAI storage directory to something writable BEFORE any imports
|
| 5 |
os.environ["CREWAI_STORAGE_DIR"] = "/tmp/crewai"
|
| 6 |
os.environ["CREWAI_TELEMETRY_ENABLED"] = "false"
|
| 7 |
+
os.environ["CREWAI_DB_PATH"] = "/tmp/crewai/crewai.db"
|
| 8 |
+
os.environ["CREWAI_MEMORY_ENABLED"] = "false"
|
| 9 |
|
| 10 |
# Create the directory if it doesn't exist
|
| 11 |
os.makedirs("/tmp/crewai", exist_ok=True)
|
main.py
CHANGED
|
@@ -4,6 +4,8 @@ import os
|
|
| 4 |
# Set CrewAI storage directory to something writable BEFORE any imports
|
| 5 |
os.environ["CREWAI_STORAGE_DIR"] = "/tmp/crewai"
|
| 6 |
os.environ["CREWAI_TELEMETRY_ENABLED"] = "false"
|
|
|
|
|
|
|
| 7 |
|
| 8 |
from crewai import Crew, Process
|
| 9 |
from agents import finance_knowledge_agent, market_news_agent, stock_analysis_agent, response_refiner_agent
|
|
|
|
| 4 |
# Set CrewAI storage directory to something writable BEFORE any imports
|
| 5 |
os.environ["CREWAI_STORAGE_DIR"] = "/tmp/crewai"
|
| 6 |
os.environ["CREWAI_TELEMETRY_ENABLED"] = "false"
|
| 7 |
+
os.environ["CREWAI_DB_PATH"] = "/tmp/crewai/crewai.db"
|
| 8 |
+
os.environ["CREWAI_MEMORY_ENABLED"] = "false"
|
| 9 |
|
| 10 |
from crewai import Crew, Process
|
| 11 |
from agents import finance_knowledge_agent, market_news_agent, stock_analysis_agent, response_refiner_agent
|
tasks.py
CHANGED
|
@@ -4,6 +4,8 @@ import os
|
|
| 4 |
# Set CrewAI storage directory to something writable BEFORE any imports
|
| 5 |
os.environ["CREWAI_STORAGE_DIR"] = "/tmp/crewai"
|
| 6 |
os.environ["CREWAI_TELEMETRY_ENABLED"] = "false"
|
|
|
|
|
|
|
| 7 |
|
| 8 |
from utils import search_qdrant, search_news, get_stock_data
|
| 9 |
from crewai import Task
|
|
|
|
| 4 |
# Set CrewAI storage directory to something writable BEFORE any imports
|
| 5 |
os.environ["CREWAI_STORAGE_DIR"] = "/tmp/crewai"
|
| 6 |
os.environ["CREWAI_TELEMETRY_ENABLED"] = "false"
|
| 7 |
+
os.environ["CREWAI_DB_PATH"] = "/tmp/crewai/crewai.db"
|
| 8 |
+
os.environ["CREWAI_MEMORY_ENABLED"] = "false"
|
| 9 |
|
| 10 |
from utils import search_qdrant, search_news, get_stock_data
|
| 11 |
from crewai import Task
|
utils.py
CHANGED
|
@@ -5,6 +5,8 @@ import os
|
|
| 5 |
# Set CrewAI storage directory to something writable BEFORE any imports
|
| 6 |
os.environ["CREWAI_STORAGE_DIR"] = "/tmp/crewai"
|
| 7 |
os.environ["CREWAI_TELEMETRY_ENABLED"] = "false"
|
|
|
|
|
|
|
| 8 |
|
| 9 |
# Set HuggingFace cache directories
|
| 10 |
os.environ["HF_HOME"] = "/tmp/huggingface_cache"
|
|
@@ -67,19 +69,13 @@ except Exception as e:
|
|
| 67 |
embeddings = SimpleEmbeddings()
|
| 68 |
print("⚠️ Using SimpleEmbeddings as final fallback - RAG functionality will be limited")
|
| 69 |
|
| 70 |
-
# Connect to the existing Qdrant collection
|
| 71 |
-
|
| 72 |
-
|
| 73 |
-
|
| 74 |
-
|
| 75 |
-
|
| 76 |
-
|
| 77 |
-
)
|
| 78 |
-
print("✅ Successfully connected to Qdrant")
|
| 79 |
-
except Exception as e:
|
| 80 |
-
print(f"❌ Failed to connect to Qdrant: {e}")
|
| 81 |
-
print("⚠️ RAG functionality will be limited - using web search only")
|
| 82 |
-
qdrant = None
|
| 83 |
|
| 84 |
# Initialize Mistral LLM
|
| 85 |
mistral_llm = LLM(model="mistral/mistral-large-latest", api_key=MISTRAL_API_KEY, temperature=0.7)
|
|
@@ -91,16 +87,11 @@ gemini_llm = LLM(model="gemini/gemini-2.0-flash", api_key=GEMINI_API_KEY, temper
|
|
| 91 |
@lru_cache(maxsize=100)
|
| 92 |
def search_qdrant(query, top_k=3):
|
| 93 |
"""Search Qdrant for relevant documents."""
|
| 94 |
-
if qdrant is None:
|
| 95 |
-
print("⚠️ Qdrant not available, returning empty results")
|
| 96 |
-
return []
|
| 97 |
-
|
| 98 |
try:
|
| 99 |
retriever = qdrant.as_retriever(search_type="similarity", search_kwargs={"k": top_k})
|
| 100 |
results = retriever.invoke(query)
|
| 101 |
return [{"text": doc.page_content, "source": doc.metadata.get("source", "Unknown")} for doc in results]
|
| 102 |
-
except Exception
|
| 103 |
-
print(f"❌ Error searching Qdrant: {e}")
|
| 104 |
return []
|
| 105 |
|
| 106 |
def search_news(query, max_results=5):
|
|
|
|
| 5 |
# Set CrewAI storage directory to something writable BEFORE any imports
|
| 6 |
os.environ["CREWAI_STORAGE_DIR"] = "/tmp/crewai"
|
| 7 |
os.environ["CREWAI_TELEMETRY_ENABLED"] = "false"
|
| 8 |
+
os.environ["CREWAI_DB_PATH"] = "/tmp/crewai/crewai.db"
|
| 9 |
+
os.environ["CREWAI_MEMORY_ENABLED"] = "false"
|
| 10 |
|
| 11 |
# Set HuggingFace cache directories
|
| 12 |
os.environ["HF_HOME"] = "/tmp/huggingface_cache"
|
|
|
|
| 69 |
embeddings = SimpleEmbeddings()
|
| 70 |
print("⚠️ Using SimpleEmbeddings as final fallback - RAG functionality will be limited")
|
| 71 |
|
| 72 |
+
# Connect to the existing Qdrant collection
|
| 73 |
+
qdrant = QdrantVectorStore.from_existing_collection(
|
| 74 |
+
embedding=embeddings,
|
| 75 |
+
url=QDRANT_URL,
|
| 76 |
+
api_key=QDRANT_API_KEY,
|
| 77 |
+
collection_name=COLLECTION_NAME
|
| 78 |
+
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 79 |
|
| 80 |
# Initialize Mistral LLM
|
| 81 |
mistral_llm = LLM(model="mistral/mistral-large-latest", api_key=MISTRAL_API_KEY, temperature=0.7)
|
|
|
|
| 87 |
@lru_cache(maxsize=100)
|
| 88 |
def search_qdrant(query, top_k=3):
|
| 89 |
"""Search Qdrant for relevant documents."""
|
|
|
|
|
|
|
|
|
|
|
|
|
| 90 |
try:
|
| 91 |
retriever = qdrant.as_retriever(search_type="similarity", search_kwargs={"k": top_k})
|
| 92 |
results = retriever.invoke(query)
|
| 93 |
return [{"text": doc.page_content, "source": doc.metadata.get("source", "Unknown")} for doc in results]
|
| 94 |
+
except Exception:
|
|
|
|
| 95 |
return []
|
| 96 |
|
| 97 |
def search_news(query, max_results=5):
|