Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
fabf52f
Added Chatbot page
jakira-bot Sep 11, 2025
c9fcc9f
Added missing components
jakira-bot Sep 11, 2025
67dc4a3
Added back header parts
jakira-bot Sep 16, 2025
0f62d5e
Changes from gemini to sdk ai
jakira-bot Sep 16, 2025
e69b43c
Refactored to ai sdk (needs review), and added first version of datab…
irp2605 Sep 17, 2025
8f6fd24
Fixed issue with route.ts having typing issues
jakira-bot Sep 17, 2025
bcd49c7
updated env and readme
jakira-bot Sep 17, 2025
5c9277f
Fixed some formating on readme
jakira-bot Sep 17, 2025
58b7821
Fixed a link
jakira-bot Sep 17, 2025
a6580cf
Added input validation
jakira-bot Sep 18, 2025
160e8ca
Added HITL types and utility functions
irp2605 Sep 18, 2025
59cfcd3
Fixed typescript errors in tools file
irp2605 Sep 18, 2025
0285c6f
Modfied route to have streaming and improved role definition but stil…
jakira-bot Sep 20, 2025
acb1af4
Fixed not tool calling.
irp2605 Sep 20, 2025
3993f82
Charting
Azizahussein Sep 21, 2025
eda44fa
Merge remote-tracking branch 'origin/frontend-charting' into HITL
irp2605 Sep 23, 2025
1260d93
Adjusted frontend code to support streaming instead of json responses
irp2605 Sep 23, 2025
60538f1
Uncommented exa model
irp2605 Sep 23, 2025
7731ad8
Fixed tool-calling results not displaying properly
irp2605 Sep 23, 2025
98566d2
chart-edit
Azizahussein Sep 24, 2025
58ad1ea
Merge pull request #4 from jakira-bot/frontend-charting
Azizahussein Sep 24, 2025
9d2f179
Fix
Azizahussein Sep 26, 2025
3114f87
Created a Table
Azizahussein Oct 1, 2025
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
4 changes: 3 additions & 1 deletion .env.example
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
AI_API_KEY="your_api_key"
POSTGRES_URL="postgresql://postgres:example@localhost:5432/postgres"
DATABASE_URL="postgresql://postgres:example@localhost:5432/postgres"
AUTH_GOOGLE_ID=your-google-client-id
AUTH_GOOGLE_SECRET=your-google-client-secret
AUTH_SECRET="your-auth-secret"
GOOGLE_GENERATIVE_AI_API_KEY="google-ai-api-key"
EXASEARCH_API_KEY="exasearch-api-key"

REDIS_URL="redis://localhost:6379"

Expand Down
33 changes: 28 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,20 +24,41 @@ cp .env.example .env

To configure Google authentication, set the following environment variables in your `.env` file:

| Variable Name | Description | Required | Default Value |
| ---------------------- | --------------------------------------------------------------------------------------------------------------------------------- | -------- | ------------- |
| `GOOGLE_CLIENT_ID` | Your Google application's Client ID. Obtain this from the [Google Developer Console](https://console.developers.google.com/). | Yes | None |
| `GOOGLE_CLIENT_SECRET` | Your Google application's Client Secret. Obtain this from the [Google Developer Console](https://console.developers.google.com/). | Yes | None |
| Variable Name | Description | Required | Default Value |
| -------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | -------- | ------------- |
| `GOOGLE_CLIENT_ID` | Your Google application's Client ID. Obtain this from the [Google Developer Console](https://console.developers.google.com/). | Yes | None |
| `GOOGLE_CLIENT_SECRET` | Your Google application's Client Secret. Obtain this from the [Google Developer Console](https://console.developers.google.com/). | Yes | None |
| `GOOGLE_GENERATIVE_AI_API_KEY` | Your Google Generative Language API key. Obtain this from the Google Cloud Console as described below. | Yes | None |
| `EXASEARCH_API_KEY` | Your ExaSearch API key. Obtain this from the [ExaSearch Developer Portal](https://dashboard.exa.ai/login). | Yes | None |


**Instructions:**

1. **Obtain Google OAuth Credentials:**
1a. **Obtain Google OAuth Credentials:**

- Navigate to the [Google Developer Console](https://console.developers.google.com/).
- Create a new project or select an existing one.
- Go to the "Credentials" section and create OAuth 2.0 credentials.
- Note down the generated `Client ID` and `Client Secret`.

1b. Obtain Google Generative Language API Key

- Go to the [Google Cloud Console](https://console.cloud.google.com/).
- Select your project or create a new one.
- **Enable billing** on your project (required to use the API).
- Enable the **Generative Language API**:
- Visit [Generative Language API library](https://console.cloud.google.com/apis/library/generativelanguage.googleapis.com).
- Click **Enable**.
- Go to the **Credentials** page.
- Click **Create Credentials** → **API Key**.
- Copy the generated API key.

1c. Obtain Exa Api Key

- Go to https://dashboard.exa.ai/login
- Login with an google account
- Copy the generated API key.

2. **Set Up Your `.env` File:**
- Create a `.env` file in the root directory of your project if it doesn't exist.

Expand All @@ -47,6 +68,8 @@ To configure Google authentication, set the following environment variables in y
```env
GOOGLE_CLIENT_ID=your-google-client-id
GOOGLE_CLIENT_SECRET=your-google-client-secret
GOOGLE_GENERATIVE_AI_API_KEY=your-google-generative-language-api-key
EXASEARCH_API_KEY=your-exasearch-api-key
```
- Save the `.env` file. Ensure this file is **not** committed to version control by adding `.env` to your `.gitignore` file.

Expand Down
48 changes: 48 additions & 0 deletions app/(protected)/chatbot/layout.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
import type { Metadata } from "next";
import "../../globals.css";
import { cn } from "@/lib/utils";
import { Toaster } from "@/components/ui/sonner";
import { ThemeProvider } from "@/components/theme-provider";
import { auth } from "@/auth";
import { SessionProvider } from "next-auth/react";
import { Poppins } from "next/font/google";

export const metadata: Metadata = {
title: "Chatbot - Dark Alpha Capital",
description: "AI Chatbot for Deal Sourcing",
};

const poppins = Poppins({
subsets: ["latin"],
weight: ["100", "200", "300", "400", "500", "600", "700", "800", "900"],
display: "swap",
variable: "--font-poppins",
});

export default async function ChatbotLayout({
children,
}: Readonly<{
children: React.ReactNode;
}>) {
const userSession = await auth();

return (
<html lang="en" className={cn(poppins.variable)} suppressHydrationWarning>
<body className={`antialiased`}>
<ThemeProvider
attribute="class"
defaultTheme="light"
enableSystem
disableTransitionOnChange
>
<SessionProvider>
<main className="min-h-screen bg-background">
{children}
</main>
</SessionProvider>
<Toaster />
</ThemeProvider>
</body>
</html>
);
}
Loading