Ardaarslan02 commited on
Commit
6d18423
·
verified ·
1 Parent(s): 40c02fc

Upload 6 files

Browse files
Files changed (6) hide show
  1. Dockerfile +3 -0
  2. agents.py +2 -0
  3. app.py +2 -0
  4. main.py +2 -0
  5. tasks.py +2 -0
  6. utils.py +10 -19
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 with error handling
71
- try:
72
- qdrant = QdrantVectorStore.from_existing_collection(
73
- embedding=embeddings,
74
- url=QDRANT_URL,
75
- api_key=QDRANT_API_KEY,
76
- collection_name=COLLECTION_NAME
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 as e:
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):