Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/callstack/byorg-ai
TypeScript framework for writing chatbot applications
https://github.com/callstack/byorg-ai
chatbot discord discord-bot llm slack slack-bot typescript
Last synced: 15 days ago
JSON representation
TypeScript framework for writing chatbot applications
- Host: GitHub
- URL: https://github.com/callstack/byorg-ai
- Owner: callstack
- License: mit
- Created: 2024-10-29T10:38:41.000Z (about 2 months ago)
- Default Branch: main
- Last Pushed: 2024-12-12T14:11:05.000Z (15 days ago)
- Last Synced: 2024-12-12T15:24:06.528Z (15 days ago)
- Topics: chatbot, discord, discord-bot, llm, slack, slack-bot, typescript
- Language: TypeScript
- Homepage: https://byorg.ai
- Size: 2.41 MB
- Stars: 19
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# byorg.ai - Chatbot Application Framework
[Our Docs](https://byorg.ai)
## Structure
### byorg.ai framework
Packages:
- `packages/core` - Frontend-agnostic chatbot logic (application, middlewares, effects)
- `packages/slack` - Slack frontend integration
- `packages/discord` - Discord frontend integration
- `packages/utils` - Utility functions (e.g. logger)
- `packages/document-loaders` - Document loaders: Google Docs, Notion, PDF, etc.)
- `packages/slack-rich-text` - Markdown renderer to/from Slack Blocks format## byorg.ai key concepts (`core` package)
- `Application` (message processor) - pipeline for processing messages from the user. In starts with conversation history (e.g. for Slack), then in passes the message through a series of middleware and finally to AI provider (e.g. OpenAI) which produces the response.
- `Middleware` - a middleware is a function that processes the message before it is passed to the AI provider. It is used to add custom logic to the message processing pipeline.
- `Effect` - an effect is a function that is executed after the message is processed. It is used to add custom logic to the message processing pipeline (e.g. logging and analytics).
- `Tool` - a tool is a function that is used by AI provider to call an external API.
- `Plugin` - plugin is a simple interface that groups middlewares, tools and effects into a single entity that can be used to extend the chatbot functionality.
- `ChatModel` - interface representing LLM chat model or more advanced AI flow which adheres to the same simple interface. We use [ai-sdk](https://github.com/ai-sdk/ai-sdk) under the hood to allow for easy integration with many AI providers.