Skip to content
This repository has been archived by the owner on Jun 22, 2024. It is now read-only.

Latest commit

 

History

History
102 lines (60 loc) · 5.15 KB

README.md

File metadata and controls

102 lines (60 loc) · 5.15 KB

Release Go version

SpectroMate

drawing

Overview 🧑🏿‍🚀 👩‍🚀 🧑‍🚀

SpectroMate is an API server with extended functionality designed for Slack integration in the form of a bot. You can use SpectroMate to handle slash commands, and message actions. You can also use SpectroMate to handle non-slack-related events by creating API endpoints for other purposes.

SpectroMate comes with out-of-the-box support for Mendable. You can use your Mendable-trained model to answer documentation-related questions by using the /docs ask <question> slash command.

Example of a Slack question asked to Mendable


Getting Started 🚀

Select the target platform to view its Getting Started guide.


API Endpoints 🕹️

The following endpoints are available.

Description Endpoint Method
Used for health checks by external resources. /health GET
A slack endpoint that can be used to handle slash commands. /slack POST
A slack endpoint for handling slack message actions. /slack/actions POST

Slack Commands 🛠️

The following Slack commands are available.

Description Command
Displays information to the user for how to use SpectroMate. Invalid commands return the help response. /help
Used to query the Mendable and ask documentation questions to a trained model. /ask
Same as the /ask but responses are only visible to the user versus the entire channel. /pask

Slack Actions 🪡

Spectromate supports the following actions.

Description Action
Handles the possitive feedback button and submits the feedback to Mendable. ask_model_positive_feedback
Handles the negavtive feedback button and submits the feedback to Mendable. ask_model_negative_feedback

Architecture 📐

The following is an architectural overview of SpectroMate.

An architecture diagram with all the components that support SpectroMate

To learn more about SpectroMate, review the internal technical document.

Supported Features and Limitations 🔍

Action Supported Notes
Slash command Supported through the /slack endpoint.
Message buttons Supported through the /slack/actions endpoint.
Mentions Currently unavailable.
Threads Currently unavailable.
Health checks Supported through the /health endpoint.
Verify Slack signature Verification of Slack signature is applied to all Slack endpoints.
Metrics Currently unavailable.
Proxy SpectroMate will honor the HTTP_PROXY, HTTPS_PROXY and NO_PROXY environment variables.
Image Verification We sign our images through Cosign. Review the Image Verification page to learn more.

⚠️ There is a limitation with pask messages when submitting feedback. The answer response message is replaced with a feedback acknowledgment message. This behavior stems from the Slack API not including the original message when handling action events from an ephemeral message.

Contribution 🫶

We welcome all types of contributions. Please take a moment and review our contribution guidelines.

Legal & Acknowledgment 📜

Review the Open Source Acknowledgment reference resource for a complete list of open-source licenses used in this project.