Skip to content

Commit

Permalink
Update README
Browse files Browse the repository at this point in the history
  • Loading branch information
DEENUU1 committed Jan 28, 2024
1 parent 349b057 commit 4c9514e
Show file tree
Hide file tree
Showing 7 changed files with 3,195 additions and 25 deletions.
19 changes: 19 additions & 0 deletions .env_example
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
DEBUG=False
TITLE=Jarvis
SQLITE_CONNECTION_STRING=sqlite:///sqlite.db
MODELS="gpt-3.5-turbo-16k-0613,gpt-4"
OPENAI_KEY=
FIRST_NAME=
LAST_NAME=
LOCATION=""
PINECONE_API_KEY=
NOTION_API_KEY=
NOTION_DATABASES="id1,id2,id3"
NOTION_DEBUG=True
CELERY_BROKER_URL=redis://127.0.0.1:6379/0
CELERY_RESULT_BACKEND=redis://127.0.0.1:6379/0
OPENWEATHERAPP_API_KEY=
NEWS_API=
MAKE_NOTION_CREATE_NOTE=
MAKE_GOOGLE_CALENDAR_CREATE_LIST_EVENT=
GOOGLE_CALENDAR_NAMES="name1,name2,name3"
84 changes: 77 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,22 +31,37 @@ Jarvis consists of 2 repositories:
- Desktop https://github.com/DEENUU1/jarvis-desktop
- Core/Backend (current)


### System architecture
<img src="assets/1.png" alt="architecture"/>

### How agent works
<img src="assets/2.png" alt="agent"/>

### How embedding works
<img src="assets/3.png" alt="embedding"/>

## Features

TODO
- Access on multiple devices - the application backend is hosted on an **AWS EC2** instance, so in the future, in addition
to the Desktop application, it will also be possible to create a mobile application.
- Conversation history saved in SQLite database
- RAG by saving conversation history to a vector database (**Pinecone**), as well as the ability to import data from files
in various formats and saving data from multiple databases with Notion
- Integration with **make.com**, currently used to support **Google calendar** and create notes in **Notion**
- Agent integration with the **Duckduckgo** search engine, **weather** data, **current date**, **news**, **wikipedia**
- Possibility of **voice conversation** with the assistant by using Whisper to transcribe audio into text
- Ability to convert **text to speech** to read AI responses

<img src="assets/Screenshot_1.png" alt="make"/>
<img src="assets/Screenshot_2.png" alt="make"/>

## Technologies:

#### Backend

- Python
- Langchain
- FastAPI
- Langchain
- FastAPI
- AWS
- EC2
- ElasticIP
Expand All @@ -56,24 +71,79 @@ TODO
- Docker
- Docker-compose
- Nginx
- Make.com

#### Desktop

- Rust
- Tauri
- Tauri
- Typescript
- React
- NextJS

- Next.js

<img src="assets/a.png" alt="home"/>
<img src="assets/b.png" alt="conversation"/>
<img src="assets/c.png" alt="sidebar"/>
<img src="assets/d.png" alt="light_dark"/>
<img src="assets/e.png" alt="upload"/>

## Installation

### Backend

1. Clone repository

```bash
git clone https://github.com/DEENUU1/jarvis-backend.git
```

2. Create .env file

```bash
cp .env_example .env
```

3. Run docker-compose

```bash
docker-compose build
docker-compose up
```

### Desktop

1. Clone repository

```bash
git clone https://github.com/DEENUU1/jarvis-desktop.git
```

2. Change directory

```bash
cd jarvis
```

3. Create .env.local file

```bash
cp .env.local_example .env.local
```

4. Install packages

```bash
npm i
```

5. Build app

```bash
npm run tauri dev
```

### Other
In ./blueprint directory u can find all blueprints which I made in make.com

## Authors

Expand Down
18 changes: 0 additions & 18 deletions app/config/settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,24 +35,6 @@ class Settings(BaseSettings):

NEWS_API: Optional[str] = os.getenv("NEWS_API")

GOOGLE_CALENDAR_OSOBISTE: Optional[str] = os.getenv("GOOGLE_CALENDAR_OSOBISTE")
GOOGLE_CALENDAR_PRACA: Optional[str] = os.getenv("GOOGLE_CALENDAR_PRACA")
GOOGLE_CALENDAR_STUDIA: Optional[str] = os.getenv("GOOGLE_CALENDAR_STUDIA")
GOOGLE_CALENDAR_SUBSKRYPCJE_I_OPLATY: Optional[str] = os.getenv("GOOGLE_CALENDAR_SUBSKRYPCJE_I_OPLATY")
GOOGLE_CALENDAR_URODZINY_ROCZNICE: Optional[str] = os.getenv("GOOGLE_CALENDAR_URODZINY_ROCZNICE")

GOOGLE_CALENDARS: Dict[str, str] = {
"Private": GOOGLE_CALENDAR_OSOBISTE,
"Work": GOOGLE_CALENDAR_PRACA,
"School": GOOGLE_CALENDAR_STUDIA,
"Payments": GOOGLE_CALENDAR_SUBSKRYPCJE_I_OPLATY,
"Celebrations": GOOGLE_CALENDAR_URODZINY_ROCZNICE,
}

GOOGLE_CALENDAR_EMAIL: Optional[str] = os.getenv("GOOGLE_CALENDAR_EMAIL")

GOOGLE_CALENDAR_DEBUG: bool = os.getenv("GOOGLE_CALENDAR_DEBUG") == "True"

MAKE_NOTION_CREATE_NOTE: Optional[str] = os.getenv("MAKE_NOTION_CREATE_NOTE")
MAKE_GOOGLE_CALENDAR_CREATE_LIST_EVENT: Optional[str] = os.getenv("MAKE_GOOGLE_CALENDAR_CREATE_LIST_EVENT")
GOOGLE_CALENDAR_NAMES: Optional[str] = os.getenv("GOOGLE_CALENDAR_NAMES")
Expand Down
Binary file added assets/Screenshot_1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/Screenshot_2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading

0 comments on commit 4c9514e

Please sign in to comment.