Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/kimtth/mini-copilot
🧮A Domain-Specific Language (DSL) Approach for Triggering Commands. 📎Generating DSL scripts using LLM and user queries to execute office API.
https://github.com/kimtth/mini-copilot
agent azure-openai chatbot chatgpt copilot domain-specific-language dsl m365 office365 openai outlook
Last synced: 1 day ago
JSON representation
🧮A Domain-Specific Language (DSL) Approach for Triggering Commands. 📎Generating DSL scripts using LLM and user queries to execute office API.
- Host: GitHub
- URL: https://github.com/kimtth/mini-copilot
- Owner: kimtth
- Created: 2023-10-20T04:27:42.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2024-05-15T08:10:11.000Z (8 months ago)
- Last Synced: 2024-05-15T23:18:32.504Z (7 months ago)
- Topics: agent, azure-openai, chatbot, chatgpt, copilot, domain-specific-language, dsl, m365, office365, openai, outlook
- Language: Python
- Homepage:
- Size: 196 KB
- Stars: 8
- Watchers: 2
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
## Mini Office-Copilot
The term ‘Copilot’ is used in the context of a LLM based Question and Answering system, or an Agent-driven automated application. This demo application aims to implement a Domain Specific Language (DSL) approach for triggering commands. A DSL serves as an intermediary script, interpreting user input into actual system commands or API calls.
```mermaid
sequenceDiagram
User->>Backend: Request
Backend->>OpenAI: Generate ODSL
activate OpenAI
OpenAI-->>Backend: ODSL
deactivate OpenAI
Backend->>Backend: ODSL formatting
Backend->>ODSL Interpreter: Interpret ODSL
activate ODSL Interpreter
ODSL Interpreter-->>ODSL Interpreter: Invoke Office API
deactivate ODSL Interpreter
ODSL Interpreter-->>Backend: Response
Backend-->>User: Response
```## Supporting commands
1. Add Outlook schedule
1. Update Outlook schedule
1. Delete Outlook schedule
1. List up Outlook schedule## App registrations for Office API
Microsoft > Entra > App registrations > API Permissons
- office_client.py
- Calendars.ReadWrite : Delegated
- User.Read : Delegated- office_client_v2.py
- Calendars.ReadWrite : Application
- User.ReadAll : Application## Launch the server
```bash
streamlit run app.py
```## Usage
- When you want to remove or update a specific schedule, first, you need to execute a schedule list command.
- Next, send a message with the corresponding schedule number to be modified. The number will be replaced by the schedule ID. Based on this ID, the modification will be carried out. `e.g., I want to delete schedule id 0.`## Screenshots
- Add Outlook schedule
- Update Outlook schedule