If load_dotenv() is not called before importing modules that rely on environment variables defined in the .env file, those modules might not be able to access the environment variables correctly. This could lead to errors or unexpected behavior in your code.
# Aider chat conversation:
ASSISTANT: To achieve this, we need to modify the `backend/main.py` file. We will change the file writing operation to write into a new file in the `run_logs` directory for each run. We will use the current timestamp to create a unique filename for each run.
Here is the step-by-step plan:
1. Import the `datetime` and `os` modules.
2. Create a `run_logs` directory if it doesn't exist.
3. Generate a unique filename using the current timestamp.
4. Change the file writing operation to write into the new file in the `run_logs` directory.
Here is the *edit block* for these changes:
```python
backend/main.py
<<<<<<< HEAD
# Load environment variables first
from dotenv import load_dotenv
from prompts import assemble_prompt
load_dotenv()
from fastapi import FastAPI, WebSocket
from llm import stream_openai_response
app = FastAPI()
@app.websocket("/generate-code")
async def stream_code_test(websocket: WebSocket):
await websocket.accept()
result = await websocket.receive_json()
async def process_chunk(content):
await websocket.send_json({"type": "chunk", "value": content})
messages = assemble_prompt("")
print(messages)
# Write the messages dict into a file for debugging
with open("messages.json", "w") as f:
f.write(str(messages))
await stream_openai_response(
messages,
lambda x: process_chunk(x),
)
=======
# Load environment variables first
from dotenv import load_dotenv
import os
from datetime import datetime
from prompts import assemble_prompt
load_dotenv()
from fastapi import FastAPI, WebSocket
from llm import stream_openai_response
app = FastAPI()
@app.websocket("/generate-code")
async def stream_code_test(websocket: WebSocket):
await websocket.accept()
result = await websocket.receive_json()
async def process_chunk(content):
await websocket.send_json({"type": "chunk", "value": content})
messages = assemble_prompt("")
print(messages)
# Create run_logs directory if it doesn't exist
if not os.path.exists('run_logs'):
os.makedirs('run_logs')
# Generate a unique filename using the current timestamp
filename = datetime.now().strftime('run_logs/messages_%Y%m%d_%H%M%S.json')
# Write the messages dict into a new file for each run
with open(filename, "w") as f:
f.write(str(messages))
await stream_openai_response(
messages,
lambda x: process_chunk(x),
)
>>>>>>> updated
```