Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
66 changes: 63 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,58 @@ Follow these steps to get the application running locally for development and te
1. Navigate to the `backend/` directory.
2. Create a file named `.env` by copying the `backend/.env.example` file.
3. Open the `.env` file and add your Gemini API key: `GEMINI_API_KEY="YOUR_ACTUAL_API_KEY"`


This project uses a Python virtual environment to manage dependencies in an isolated environment named `myenv`.

## Creating the Virtual Environment

### On Windows (Command Prompt)

```
python -m venv myenv
```

### On Mac (macOS) / Linux (Terminal)

```
python3 -m venv myenv
```

## Activating the Virtual Environment

### On Windows (Command Prompt)

```
.\myenv\Scripts\activate
```

*If you are using PowerShell, activate with:*

```
.\myenv\Scripts\Activate.ps1
```

### On Mac (macOS) / Linux (Terminal)

```
source myenv/bin/activate
```

## Deactivating the Virtual Environment

To stop using the virtual environment, run:

```
deactivate
```

## Notes

- After activation, Python and pip commands will use the isolated environment.
- Remember to activate the environment each time you start a new terminal session before running your project.
- To install packages, use `pip install <package_name>` while the environment is activated.


**2. Install Dependencies:**

Expand All @@ -52,14 +104,22 @@ npm install

**3. Run Development Servers:**

**Backend & Frontend:**
**Run Backend & Frontend in seperate windows:**

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

There is a typo in the heading. seperate should be separate.

Suggested change
**Run Backend & Frontend in seperate windows:**
**Run Backend & Frontend in separate windows:**


```bash
make dev
cd backend
langgraph dev
```
**Open another window to run front end, first active venv again **

```bash
cd ..
.\myenv\Scripts\activate
npm run dev
```
Comment on lines +113 to 119

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

The instructions for running the frontend server have a few issues that could confuse users:

  • The heading on line 113 has a typo ("active" should be "activate") and is a bit unclear.
  • The cd .. command on line 116 assumes the user's new terminal session is in the backend directory, which is not a reliable assumption.
  • The .\myenv\Scripts\activate command on line 117 is Windows-specific. For consistency with the rest of the documentation, you should also provide the command for macOS/Linux users.
  • The npm run dev command on line 118 will fail if not run from the frontend directory, but the cd frontend step is missing.

Please consider rewriting this section to be clearer and more robust for all operating systems.

This will run the backend and frontend development servers. Open your browser and navigate to the frontend development server URL (e.g., `http://localhost:5173/app`).

_Alternatively, you can run the backend and frontend development servers separately. For the backend, open a terminal in the `backend/` directory and run `langgraph dev`. The backend API will be available at `http://127.0.0.1:2024`. It will also open a browser window to the LangGraph UI. For the frontend, open a terminal in the `frontend/` directory and run `npm run dev`. The frontend will be available at `http://localhost:5173`._


## How the Backend Agent Works (High-Level)

Expand Down
8 changes: 4 additions & 4 deletions frontend/src/components/InputForm.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ export const InputForm: React.FC<InputFormProps> = ({
}) => {
const [internalInputValue, setInternalInputValue] = useState("");
const [effort, setEffort] = useState("medium");
const [model, setModel] = useState("gemini-2.5-flash-preview-04-17");
const [model, setModel] = useState("gemini-2.5-flash");

const handleInternalSubmit = (e?: React.FormEvent) => {
if (e) e.preventDefault();
Expand Down Expand Up @@ -136,23 +136,23 @@ export const InputForm: React.FC<InputFormProps> = ({
</SelectTrigger>
<SelectContent className="bg-neutral-700 border-neutral-600 text-neutral-300 cursor-pointer">
<SelectItem
value="gemini-2.0-flash"
value="gemini-2.5-flash"

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

critical

Changing this value to gemini-2.5-flash creates a duplicate with the SelectItem on line 147. Duplicate values for options in a select list are invalid and will cause unpredictable behavior. The label for this item, "2.0 Flash", is also now inconsistent with its value. If gemini-2.0-flash is a retired model, this SelectItem should probably be removed entirely. To fix the immediate bug of a duplicate value, you can revert this line.

Suggested change
value="gemini-2.5-flash"
value="gemini-2.0-flash"

className="hover:bg-neutral-600 focus:bg-neutral-600 cursor-pointer"
>
<div className="flex items-center">
<Zap className="h-4 w-4 mr-2 text-yellow-400" /> 2.0 Flash
</div>
</SelectItem>
<SelectItem
value="gemini-2.5-flash-preview-04-17"
value="gemini-2.5-flash"
className="hover:bg-neutral-600 focus:bg-neutral-600 cursor-pointer"
>
<div className="flex items-center">
<Zap className="h-4 w-4 mr-2 text-orange-400" /> 2.5 Flash
</div>
</SelectItem>
<SelectItem
value="gemini-2.5-pro-preview-05-06"
value="gemini-2.5-pro"
className="hover:bg-neutral-600 focus:bg-neutral-600 cursor-pointer"
>
<div className="flex items-center">
Expand Down