spectrocloud / spectromate

An API server designed for creating Slack Applications

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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.

About

An API server designed for creating Slack Applications

License:Apache License 2.0


Languages

Language:Go 90.6%Language:HCL 7.2%Language:Dockerfile 1.1%Language:Makefile 0.9%Language:Shell 0.1%