Skip to content

Commit

Permalink
plugins docs changes (deprecated realtime plugins) + fixes plugins docs
Browse files Browse the repository at this point in the history
  • Loading branch information
josancamon19 committed Sep 14, 2024
1 parent e3788bf commit b417cf6
Show file tree
Hide file tree
Showing 9 changed files with 50 additions and 32 deletions.
27 changes: 16 additions & 11 deletions docs/_developer/Contribution.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,35 +6,43 @@ nav_order: 4

# Contribution

We welcome contributions from the community! If you are interested in improving Friend, check out our [current tasks](https://github.com/BasedHardware/Omi/issues) (Some of the tasks have paid bounties)
We welcome contributions from the community! If you are interested in improving Friend, check out our [current tasks](https://github.com/BasedHardware/Omi/issues) (Some of the tasks have paid
bounties)
To contribute:

* Fork the repository
* Do the changes
* create a Pull Request and specifiy which issue is it related to

## Docs Contribution
Docs contributions are as important as code contributions! Our docs are located at [github docs folder](https://github.com/BasedHardware/Omi/tree/main/docs) and synced real-time with docs.omi.me

You can modify the docs directly from Github interface by Createing a fork => [clicking this icon](https://share.cleanshot.com/dkBSffGr) => click "preview" => create pull request
Docs contributions are as important as code contributions! Our docs are located at [github docs folder](https://github.com/BasedHardware/Omi/tree/main/docs) and synced real-time with docs.omi.me

You can modify the docs directly from Github interface by Createing a fork => [clicking this icon](https://share.cleanshot.com/dkBSffGr) => click "preview" => create pull request

# Rewards

You can get rewards by submitting approved PRs (significant contribution):

* 1 PR - free DEV KIT device (necklace/glasses, depending on where you contribute)
* 2 PRs - $100 of transcription credits to use the app
* 5 PRs - $500 of transcription credits to use the app + giving special Contributor role in Discord
* 10 PRs - we will fly you out to San Francisco to hangout with Based Hardware team

### What is a significant contribution and what will be merged?

* Something you spent 5h+ on. Can be multiple contributions with smaller time spent
* Either a new feature or a major bug
* Quality code with explanation

To receive the reward, please send an email to [email protected] with a list of your contributions, address, email and phone number

# Paid [Bounties](https://github.com/BasedHardware/Omi/issues?q=is:open+is:issue+label:%22Paid+Bounty+%F0%9F%92%B0%22)

Get paid to improve AI wearables!

Some of the tickets are paid bounties! You can check which ones, but filtering with the ["Paid Bounty" label](https://github.com/BasedHardware/Omi/issues?q=is:open+is:issue+label:%22Paid+Bounty+%F0%9F%92%B0%22)
Some of the tickets are paid bounties! You can check which ones, but filtering with
the ["Paid Bounty" label](https://github.com/BasedHardware/Omi/issues?q=is:open+is:issue+label:%22Paid+Bounty+%F0%9F%92%B0%22)

## Bounty Rules

Expand All @@ -43,15 +51,12 @@ Some of the tickets are paid bounties! You can check which ones, but filtering w
* you can "lock" the bounty task, but only after your first pull request is merged.
* send an email to [email protected] with a link to your bounty + paypal account to claim.

### What if there are no paid bounties available?
If there are no paid bounties available, you can suggest your own. Simply filter by [open issues](https://github.com/BasedHardware/Omi/issues?q=is:open+is:issue+) with no "bounty" label and suggest your own bounty while pinging @ josancamon19 or @kodjima33





### What if there are no paid bounties available?

If there are no paid bounties available, you can suggest your own. Simply filter by [open issues](https://github.com/BasedHardware/Omi/issues?q=is:open+is:issue+) with no "bounty" label and suggest
your own bounty while pinging @ josancamon19 or @kodjima33

### Join a community of builders

[Based Hardware Discord](https://discord.gg/8MP3b9ymvx){: .btn .btn-purple }
[Our official repository](https://github.com/BasedHardware/Omi){: .btn .btn-green }
2 changes: 1 addition & 1 deletion docs/_developer/plugins/Integrations.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ externally.
- Create a personalized social platform based on conversations and interests
- Generate a knowledge graph of interests, experiences, and relationships

### 2. 🏎️ Real-Time Transcript Processors
### 2. 🏎️ Real-Time Transcript Processors (@DEPRECATED / NOT READY YET)

These plugins process conversation transcripts as they occur, enabling real-time analysis and actions.

Expand Down
8 changes: 4 additions & 4 deletions docs/_developer/plugins/Introduction.md
Original file line number Diff line number Diff line change
Expand Up @@ -51,10 +51,10 @@ These plugins modify how FRIEND processes and responds to information:

These plugins allow FRIEND to interact with external services and process data in real-time:

| Plugin Type | Description | Use Cases | Example Video |
|-----------------------------------------|------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------|
| **👷 Memory Creation Triggers** | Activated when FRIEND creates a new memory | - Update project management tools with conversation summaries<br>- Create a personalized social platform that matches you with like-minded individuals based on your conversations and interests<br>- Generate a comprehensive knowledge graph of your interests, experiences, and relationships over time | [![Memory trigger plugin](https://img.youtube.com/vi/Yv7gP3GZ0ME/0.jpg)](https://youtube.com/shorts/Yv7gP3GZ0ME) |
| **🏎️ Real-Time Transcript Processors** | Process conversation transcripts as they occur | - Live conversation coaching, providing feedback on communication skills and suggesting improvements in real-time<br>- Handling trigger phrases like "Hey Friend, remind me to..." to set reminders or "Hey Friend, add to cart..." to update your shopping lists<br>- Performing real-time web searches or fact-checking during conversations<br>- Analyzing emotional states and providing supportive responses or suggestions<br>- Integrating with smart home systems to control devices based on conversational cues | [![Memory trigger plugin](https://img.youtube.com/vi/h4ojO3WzkxQ/0.jpg)](https://youtube.com/shorts/h4ojO3WzkxQ) |
| Plugin Type | Description | Use Cases | Example Video |
|-------------------------------------------------------------------------|------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------|
| **👷 Memory Creation Triggers** | Activated when FRIEND creates a new memory | - Update project management tools with conversation summaries<br>- Create a personalized social platform that matches you with like-minded individuals based on your conversations and interests<br>- Generate a comprehensive knowledge graph of your interests, experiences, and relationships over time | [![Memory trigger plugin](https://img.youtube.com/vi/Yv7gP3GZ0ME/0.jpg)](https://youtube.com/shorts/Yv7gP3GZ0ME) |
| **🏎️ Real-Time Transcript Processors `(@DEPRECATED / NOT READY YET)`** | Process conversation transcripts as they occur | - Live conversation coaching, providing feedback on communication skills and suggesting improvements in real-time<br>- Handling trigger phrases like "Hey Friend, remind me to..." to set reminders or "Hey Friend, add to cart..." to update your shopping lists<br>- Performing real-time web searches or fact-checking during conversations<br>- Analyzing emotional states and providing supportive responses or suggestions<br>- Integrating with smart home systems to control devices based on conversational cues | [![Memory trigger plugin](https://img.youtube.com/vi/h4ojO3WzkxQ/0.jpg)](https://youtube.com/shorts/h4ojO3WzkxQ) |

## Potential Applications

Expand Down
1 change: 0 additions & 1 deletion docs/_get_started/backend/backend_deepdive.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@ nav_order: 2
Welcome to the Omi backend! This document provides a comprehensive overview of Omi's architecture and code, guiding you through its key components, functionalities, and how it all works together to
power a unique and intelligent AI assistant experience.


## Understanding the Omi Ecosystem 🗺️

Omi is a multimodal AI assistant designed to understand and interact with users in a way that's both intelligent and human-centered. The backend plays a crucial role in this by:
Expand Down
10 changes: 9 additions & 1 deletion docs/_info/Privacy.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,15 @@ At Friend, your privacy and the security of your data are our top priorities. Th
## 1. Information We Collect

### Personal Information

Includes your name, email, and contact details, necessary for account creation and management.

### Conversational Data

We record and store your conversations to offer tailored AI mentor feedback and enrich your personal memory bank.

### Usage Data

Insights into how you interact with our app, like feature usage and time engagement, are crucial for continuous improvement of our services.

## 2. Purpose of Information Use
Expand All @@ -30,17 +33,21 @@ We are dedicated to using your information responsibly:
## 3. Data Storage and Security

### Robust Storage Solutions

Your data is stored on highly secure servers, safeguarded with advanced technology.

### Uncompromised Security

We employ the latest security protocols to prevent data breaches and ensure your information remains protected against unauthorized access or any form of compromise.

## 4. Information Sharing

### Selective Sharing with Service Providers

We collaborate with third-party providers under stringent confidentiality agreements, ensuring they adhere to our privacy standards.

### Compliance with Legal Obligations

We may disclose your information if required by law, always respecting your privacy rights.

## 5. Your Privacy Rights
Expand All @@ -53,7 +60,8 @@ You are empowered to:

## 6. Wearable App Version

We offer an alternative version of our app that integrates with wearable devices. In this version, no data is collected by Friend. You bring your own API keys, and all data is stored locally on your device. This ensures that you have complete control over your data and privacy.
We offer an alternative version of our app that integrates with wearable devices. In this version, no data is collected by Friend. You bring your own API keys, and all data is stored locally on your
device. This ensures that you have complete control over your data and privacy.

## 7. Policy Updates

Expand Down
2 changes: 1 addition & 1 deletion plugins/example/basic/memory_created.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
chat = ChatOpenAI(model='gpt-4o', temperature=0)


@router.post('/conversation-feedback', tags=['basic', 'memory_created'], response_model=EndpointResponse)
@router.post('/conversation-feedback', tags=['memory-created-example'], response_model=EndpointResponse)
def conversation_feedback(memory: Memory):
prompt = f'''
The following is the structuring from a transcript of a conversation that just finished.
Expand Down
20 changes: 13 additions & 7 deletions plugins/example/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,21 @@

# from _mem0 import router as mem0_router
from _multion import router as multion_router
# from advanced import openglass as advanced_openglass_router
from advanced import realtime as advanced_realtime_router
from basic import memory_created as basic_memory_created_router
from basic import realtime as basic_realtime_router
from oauth import memory_created as oauth_memory_created_router
from zapier import memory_created as zapier_memory_created_router

# from advanced import openglass as advanced_openglass_router

# ************* @DEPRECATED **************
# REALTIME plugins are not ready yet: (After various attempts, we found the following:
# 1. Super expensive to maintain, running a llm or certain logic every 3 seconds for 10 hours a day is not cheap.
# 2. There has to be a better way to trigger those plugins, current way is not efficient.
# 3. Didn't find killer use cases.
# from advanced import realtime as advanced_realtime_router
# from basic import realtime as basic_realtime_router
# ****************************************

app = FastAPI()
app.mount("/templates/static", StaticFiles(directory="templates/static"), name="templates_static")

Expand Down Expand Up @@ -39,13 +47,11 @@ def api():


app.include_router(basic_memory_created_router.router)
app.include_router(basic_realtime_router.router)

app.include_router(oauth_memory_created_router.router)

app.include_router(zapier_memory_created_router.router)

app.include_router(advanced_realtime_router.router)
# app.include_router(basic_realtime_router.router)
# app.include_router(advanced_realtime_router.router)
# app.include_router(advanced_openglass_router.router)

# ***********************************************
Expand Down
8 changes: 4 additions & 4 deletions plugins/example/oauth/memory_created.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
templates = Jinja2Templates(directory="templates")


@router.get('/setup-notion-crm', response_class=HTMLResponse, tags=['oauth'])
@router.get('/setup-notion-crm', response_class=HTMLResponse, tags=['notion'])
async def setup_notion_crm(request: Request, uid: str):
"""
Simple setup page Form page for Notion CRM plugin.
Expand All @@ -35,7 +35,7 @@ def response_setup_notion_crm_page(request: Request, uid: str, err: str):
})


@router.get('/auth/notion/callback', response_class=HTMLResponse, tags=['oauth'])
@router.get('/auth/notion/callback', response_class=HTMLResponse, tags=['notion'])
async def callback_auth_notion_crm(request: Request, state: str, code: str):
"""
Callback from Notion Oauth.
Expand Down Expand Up @@ -87,7 +87,7 @@ async def callback_auth_notion_crm(request: Request, state: str, code: str):
return templates.TemplateResponse("okpage.html", {"request": request, "uid": uid})


@router.get('/setup/notion-crm', tags=['oauth'])
@router.get('/setup/notion-crm', tags=['notion'])
def is_setup_completed(uid: str):
"""
Check if the user has setup the Notion CRM plugin.
Expand All @@ -97,7 +97,7 @@ def is_setup_completed(uid: str):
return {'is_setup_completed': notion_api_key is not None and notion_database_id is not None}


@router.post('/notion-crm', tags=['oauth', 'memory_created'], response_model=EndpointResponse)
@router.post('/notion-crm', tags=['notion'], response_model=EndpointResponse)
def notion_crm(memory: Memory, uid: str):
"""
The actual plugin that gets triggered when a memory gets created, and adds the memory to the Notion CRM.
Expand Down
4 changes: 2 additions & 2 deletions plugins/example/zapier/memory_created.py
Original file line number Diff line number Diff line change
Expand Up @@ -195,7 +195,7 @@ def is_setup_completed(uid: str):
return {'is_setup_completed': status == "enabled"}


@router.post('/zapier/memories', tags=['zapier', 'memory_created'], response_model=EndpointResponse)
@router.post('/zapier/memories', tags=['zapier'], response_model=EndpointResponse)
def zapier_memories(memory: Memory, uid: str):
"""
The actual plugin that gets triggered when a memory gets created, and adds the memory to the Zapier.
Expand All @@ -214,7 +214,7 @@ def zapier_memories(memory: Memory, uid: str):
return {}


@router.post('/zapier/action/memories', tags=['zapier', 'new_memory'], response_model=EndpointResponse)
@router.post('/zapier/action/memories', tags=['zapier'], response_model=EndpointResponse)
def zapier_action_memories(create_memory: ZapierActionCreateMemory, uid: str):
"""
Create new memory by action from Zapier.
Expand Down

0 comments on commit b417cf6

Please sign in to comment.