-
Notifications
You must be signed in to change notification settings - Fork 139
Docs: Improve local setup instructions for API keys & .env file structure #215
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Docs: Improve local setup instructions for API keys & .env file structure #215
Conversation
WalkthroughUpdates README and Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes
Possibly related PRs
Suggested labels
Suggested reviewers
Poem
Pre-merge checks and finishing touches✅ Passed checks (5 passed)
✨ Finishing touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 3
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
README.md(3 hunks)
🔇 Additional comments (7)
README.md (7)
1-222: Verify PR scope completeness against issue #178 objectives.Issue #178 lists several requirements for improved local setup documentation:
✅ Addressed:
- Gemini API key retrieval steps (lines 168–175)
.envfile structure example (lines 177–209)❌ Missing or incomplete:
- YouTube API key retrieval steps (mentioned in issue but not in this PR)
- Python virtual environment (venv) setup instructions (explicit commands for creating and activating venv are absent)
- Backend
.env.examplefile update (only README is updated; the actual.env.examplefile is not shown)- Supabase password/host retrieval guidance is provided as a connection string but could be clearer on where to find the project password in the Supabase dashboard
Please clarify whether this PR intentionally defers some requirements to a follow-up PR, or if these items were inadvertently omitted.
1-222: Verify PR scope completeness against issue #178 stated objectives.Issue #178 lists several setup documentation improvements. This PR addresses some but not all:
✅ Addressed:
- Gemini API key retrieval steps (lines 168–175)
- Final
.envfile structure example (lines 177–209)❌ Missing or incomplete:
- YouTube API key retrieval steps (listed in issue #178 but not in this PR)
- Python virtual environment (venv) setup instructions with explicit commands
- Backend
.env.examplefile update (only README shown;.env.examplefile changes not included)- Supabase credential retrieval guidance could be clearer on where to locate the project password in the Supabase dashboard
Clarify whether these omissions are intentional (phased approach) or unintentional oversights.
128-131: Fix incorrect backend directory path.Line 130 uses
cd backend/appfrom a location already inside thebackenddirectory (line 119). This creates an incorrect path. Either navigate tocd app(if the app subdirectory exists) or remove this step ifmain.pyis at thebackend/root level.
177-209: Verify .env database credentials format against backend configuration.The
.envexamples list database connection parameters (user,password,host,port,dbname) without a consistent naming pattern. While these are technically validkey=valuepairs, confirm that the backend code actually reads them in this format. Most FastAPI/SQLAlchemy applications expect either:
- A single
DATABASE_URLvariable with full connection string, or- Prefixed environment variables like
DATABASE_USER,DATABASE_PASSWORD, etc.If the backend uses a different format, update the examples accordingly.
219-221: Verify backend startup command against actual directory structure.The startup command
uvicorn main:app --reloadassumesmain.pyis at thebackend/root level. However, ifmain.pyis located inbackend/app/(as suggested by line 130's navigation), the correct command should beuvicorn app.main:app --reload.Once the directory structure issue in lines 128–131 is resolved, update this command accordingly.
177-209: Verify backend's environment variable parsing for database credentials.The
.envexamples in the README list database parameters (user,password,host,port,dbname) in bare format. Confirm whether the backend code actually expects this format or if it requiresDATABASE_URLor individually prefixed variables (e.g.,DATABASE_USER,DATABASE_PASSWORD). Check the database connection initialization code to ensure the README documentation matches the actual implementation.
128-131: Verify backend directory structure and README.md navigation path.The navigation path at line 130 (
cd backend/app) requires confirmation against the actual repository structure. Determine whetherapp/is a subdirectory ofbackend/containingmain.py, or ifmain.pyresides at thebackend/root level, then adjust the documented command accordingly.
README.md
Outdated
| 7. Get the Gemini API key: | ||
| - Visit [Google AI Studio](https://aistudio.google.com/) | ||
| - SignIn/SignUp with Google account | ||
| - Click "API Keys" left side panel | ||
| - Click "Create API Key" | ||
| - Name your key "..." and select "Default Gemini Project" | ||
| - Click "Create key" | ||
| - Paste the API KEy into the `.env` file |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧩 Analysis chain
🌐 Web query:
Google AI Studio create API key current instructions 2025
💡 Result:
Steps (current, 2025)
- Sign in to Google AI Studio (ai.google.dev / aistudio). [1]
- If you don’t have a Cloud project in AI Studio: Dashboard → Projects → Import projects (or create a new Google Cloud project in Cloud Console). [1]
- In AI Studio Dashboard open API Keys → Create API key → choose the Google Cloud project to attach the key to → confirm. Copy the generated key. [1]
- Use the key securely (set as GEMINI_API_KEY or GOOGLE_API_KEY environment variable for clients; or provide explicitly for REST/browser use). [1][3]
- If AI Studio can’t create a project/key (permission error), create the key directly in Google Cloud Console: Cloud Console → APIs & Services → Credentials → Create credentials → API key, then use that key in AI Studio or your app. Ensure your account has apikeys.keys.create, resourcemanager.projects.update and serviceusage.services.enable if you want AI Studio to create keys for you. [2]
Sources:
[1] Google AI for Developers — Using Gemini API keys / AI Studio docs.
[2] Google AI Studio community support + GCP Console instructions.
[3] Google AI for Developers — Build mode / key usage recommendations.
Fix typo and update Gemini API key steps to match current UI.
Line 175 contains a typo: "Paste the API KEy" should be "Paste the API Key".
The documented steps are outdated. Current Google AI Studio interface (2025) differs from the substeps listed:
- API Keys is accessed via Dashboard → API Keys, not a left side panel
- The UI no longer uses "Default Gemini Project" terminology
- Users must first create or import a Google Cloud project before generating API keys
- The key naming step described does not match the current flow
Update the instructions to reflect: Sign in to ai.google.dev, navigate to Dashboard → API Keys → Create API key, select/create a Google Cloud project, then copy the generated key for use in the .env file.
🤖 Prompt for AI Agents
In README.md around lines 168 to 175, fix the typo ("Paste the API KEy" → "Paste
the API Key") and update the Gemini API key setup steps to match the 2025 Google
AI Studio flow: instruct users to sign in at ai.google.dev (or Google AI
Studio), navigate to Dashboard → API Keys → Create API key, ensure they select
or create/import the appropriate Google Cloud project when prompted, then copy
the generated API key and paste it into the .env file; replace references to
"left side panel" and "Default Gemini Project" with the updated navigation and
project selection instructions.
🧩 Analysis chain
🌐 Web query:
Google AI Studio API key creation steps 2025 current interface
💡 Result:
Steps (current AI Studio flow, 2025):
- Sign in to Google AI Studio (ai.google.com/studio) and open the Dashboard. [1]
- Import the Google Cloud project you want to use: Dashboard → Projects → Import projects → search/select your project → Import. (AI Studio only shows imported projects.) [1]
- After import, open Dashboard → API Keys (or “API Keys” in the left menu) and click Create API key. Choose the imported GCP project to associate the key; copy the key when shown. [1]
- (If AI Studio cannot create a key) Create an API key directly in Google Cloud Console: Cloud Console → Menu → APIs & Services → Credentials → Create credentials → API key. Then restrict the key and enable required APIs (e.g., Generative Language/Gemini). [2][3]
- Set the key locally as GEMINI_API_KEY or GOOGLE_API_KEY (server-side preferred) and follow Google’s best practices for key restrictions and security. [1]
Notes: Creating keys from AI Studio requires IAM permissions such as apikeys.keys.create, serviceusage.services.enable and resourcemanager.projects.update; if you lack permissions, use the Cloud Console or ask your admin. [1][3]
Sources: Google AI Studio “Using Gemini API keys” tutorial and Google Cloud API Keys docs. [1][2][3]
Fix typo and update Gemini API key creation steps to match current Google AI Studio interface.
Line 175: "API KEy" should be "API Key".
The steps in lines 168-175 are incomplete and don't match the current Google AI Studio workflow (2025). The current process requires:
- Importing a Google Cloud project into AI Studio first (Dashboard → Projects → Import projects)
- Creating the API key after import (Dashboard → API Keys or left menu → Create API key)
- Associating the key with the imported GCP project
The README skips the project import step entirely, which may cause users to fail if they attempt to follow these steps. Additionally, the URL should reference ai.google.com/studio instead of aistudio.google.com.
Consider updating the steps to include project import and clarifying the association with GCP projects.
🤖 Prompt for AI Agents
In README.md around lines 168 to 175, fix the typo "API KEy" → "API Key", update
the URL to https://ai.google.com/studio, and replace the current Gemini API key
steps with the current workflow: first import your Google Cloud project into AI
Studio (Dashboard → Projects → Import projects), then navigate to Dashboard →
API Keys (or left menu → Create API key) to create a key, ensure you
associate/choose the imported GCP project when creating the key, and finally
paste the generated API Key into your .env file.
…etup steps with remaining setup instructions
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 4
📜 Review details
Configuration used: defaults
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (2)
Backend/.env-example(1 hunks)README.md(4 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
- README.md
🔇 Additional comments (1)
Backend/.env-example (1)
4-6: LGTM!The Supabase connection pooler format is correct. The
postgres.<project>user format andaws-<location>.pooler.supabase.comhost format align with Supabase's connection string requirements.
| SUPABASE_URL=[URL] | ||
| SUPABASE_KEY=[URL] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Replace misleading [URL] placeholder for SUPABASE_KEY.
SUPABASE_KEY is an API key (anon or service key), not a URL. Use a more accurate placeholder like [YOUR-SUPABASE-KEY] to avoid confusion.
🔎 Proposed fix
SUPABASE_URL=[URL]
-SUPABASE_KEY=[URL]
+SUPABASE_KEY=[YOUR-SUPABASE-KEY]📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| SUPABASE_URL=[URL] | |
| SUPABASE_KEY=[URL] | |
| SUPABASE_URL=[URL] | |
| SUPABASE_KEY=[YOUR-SUPABASE-KEY] |
🤖 Prompt for AI Agents
In Backend/.env-example around lines 1 to 2, the SUPABASE_KEY placeholder is
misleadingly labeled as [URL]; change the placeholder to a clear API-key style
name (e.g. [YOUR-SUPABASE-KEY] or [SUPABASE_ANON_KEY]) so it reflects that this
value is an API key rather than a URL; update the line SUPABASE_KEY=[URL] to use
the new placeholder and keep SUPABASE_URL as the URL placeholder.
| SUPABASE_URL=[URL] | ||
| SUPABASE_KEY=[URL] | ||
|
|
||
| user=postgres.<project> | ||
| password=[YOUR-PASSWORD] | ||
| host=aws-<location>.pooler.supabase.com | ||
| port=5432 | ||
| dbname=postgres | ||
| GROQ_API_KEY= | ||
| SUPABASE_URL= | ||
| SUPABASE_KEY= | ||
| GEMINI_API_KEY= | ||
| YOUTUBE_API_KEY= | ||
|
|
||
| GROQ_API_KEY=[URL] | ||
|
|
||
| GEMINI_API_KEY=[URL] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Search for YOUTUBE_API_KEY in backend codebase
rg "YOUTUBE_API_KEY" Backend/ --type py --type js --type ts --type json -n -A2 -B2 2>/dev/null || echo "No YOUTUBE_API_KEY found"Repository: AOSSIE-Org/InPactAI
Length of output: 441
🏁 Script executed:
#!/bin/bash
# Search for Issue #178 or references to it
rg "178|issue.*youtube|YOUTUBE_API_KEY" Backend/ --type py --type md --type txt -n -C3 2>/dev/null | head -100Repository: AOSSIE-Org/InPactAI
Length of output: 686
🏁 Script executed:
#!/bin/bash
# Check the actual .env-example file
echo "=== Content of Backend/.env-example ==="
cat Backend/.env-example 2>/dev/null || echo "File not found"
# Search for issue references in comments/docs
echo -e "\n=== GitHub issue references ==="
rg "#178|issue.178" . --type md --type txt --type py 2>/dev/null | head -20 || echo "No issue references found"Repository: AOSSIE-Org/InPactAI
Length of output: 330
Add missing YOUTUBE_API_KEY to .env-example.
The YOUTUBE_API_KEY environment variable is actively used in Backend/app/routes/ai.py (line 92) to fetch YouTube channel information. The code raises an HTTPException if this key is not configured. It's missing from the current .env-example file and should be included:
SUPABASE_URL=[URL]
SUPABASE_KEY=[URL]
user=postgres.<project>
password=[YOUR-PASSWORD]
host=aws-<location>.pooler.supabase.com
port=5432
dbname=postgres
GROQ_API_KEY=[URL]
GEMINI_API_KEY=[URL]
YOUTUBE_API_KEY=[YOUR-YOUTUBE-API-KEY]
Consider adding brief inline comments to clarify where each API key is obtained (e.g., "# Obtain from https://console.cloud.google.com" for YouTube and Gemini keys).
🤖 Prompt for AI Agents
In Backend/.env-example around lines 1 to 12, the YOUTUBE_API_KEY entry is
missing even though Backend/app/routes/ai.py expects it; add a line
"YOUTUBE_API_KEY=[YOUR-YOUTUBE-API-KEY]" to the file and optionally add a short
inline comment indicating where to obtain it (e.g., "# Obtain from
https://console.cloud.google.com") similar to the suggested comments for other
API keys so contributors know where to get the credential.
| GEMINI_API_KEY= | ||
| YOUTUBE_API_KEY= | ||
|
|
||
| GROQ_API_KEY=[URL] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Replace misleading [URL] placeholder for GROQ_API_KEY.
This is an API key, not a URL. Use [YOUR-GROQ-API-KEY] or similar for clarity.
🔎 Proposed fix
-GROQ_API_KEY=[URL]
+GROQ_API_KEY=[YOUR-GROQ-API-KEY]📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| GROQ_API_KEY=[URL] | |
| GROQ_API_KEY=[YOUR-GROQ-API-KEY] |
🤖 Prompt for AI Agents
In Backend/.env-example around line 10, the GROQ_API_KEY placeholder is
incorrectly labeled as [URL]; update the placeholder to something clearly
indicating an API key such as [YOUR-GROQ-API-KEY] (or similar) so users know to
insert their key, not a URL, and save the change in the .env-example file.
|
|
||
| GROQ_API_KEY=[URL] | ||
|
|
||
| GEMINI_API_KEY=[URL] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Replace misleading [URL] placeholder for GEMINI_API_KEY.
This is an API key, not a URL. Use [YOUR-GEMINI-API-KEY] or similar for clarity.
🔎 Proposed fix
-GEMINI_API_KEY=[URL]
+GEMINI_API_KEY=[YOUR-GEMINI-API-KEY]📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| GEMINI_API_KEY=[URL] | |
| GEMINI_API_KEY=[YOUR-GEMINI-API-KEY] |
🤖 Prompt for AI Agents
In Backend/.env-example around line 12, the GEMINI_API_KEY placeholder is
misleadingly set to [URL]; replace it with a clear API-key placeholder such as
[YOUR-GEMINI-API-KEY] (or YOUR_GEMINI_API_KEY) to indicate an API key should be
supplied, and update any README or comments nearby if they reference the old
placeholder.
Closes #178
📝 Description
This PR fixes the README backend setup instructions by:
🔧 Changes Made
✅ Checklist
Summary by CodeRabbit
✏️ Tip: You can customize this high-level summary in your review settings.