Milo is a versatile AI assistant designed to help you with various tasks, from coding to content creation. It integrates with multiple AI models and provides a user-friendly interface for interaction.
- Multi-Model Support: Integrates with all available AI models supported by Groq, including the latest models.
- Skill Management: Easily add and manage skills to extend Milo's capabilities.
- Customizable: Modify Milo's behavior and skills to suit your needs.
- Docker Support: Run Milo in a Docker container for easy deployment.
To run Milo using Docker, follow these steps:
-
Ensure you have Docker installed on your machine.
-
Copy the
compose.ymlfile to your project directory. -
Update the
GROQ_API_KEYenvironment variable in thecompose.ymlfile with your Groq API key. -
Run the following command to start the services:
docker-compose -f compose.yml up -d
-
Access Milo:
docker exec -it milo sh /app # npm run milo
Milo supports various skills that can be added to enhance its functionality. Skills are located in the skills directory. You can create new skills or modify existing ones to tailor Milo to your needs.
To add a new skill, follow these steps:
-
Create a new TypeScript file in the
skillsdocker volume. -
Implement the skill logic like this:
const mySkill = async (args: string) => { // Your skill logic here return `Processed args: ${args}`; }; module.exports.params = { name: "MySkill", description: "A custom skill to process args", tags: ["custom", "skill"], } export default mySkill;
Note that the skill must export a default function and a params object with name, description, and tags.
The params object is used to select the right skill when multiple skills are available.
The arguments passed to the skill is an optional string that can be used to pass additional data to the skill.
After adding a skill, you can just restart Milo's Docker container to load the new skill.
Milo will automatically detect and register the new skill.
- Add more built-in skills.
- Implement a small REST API to interact with Milo.
- Change LLM response by streaming the response to the client.
We welcome contributions to Milo! If you have ideas for new features, improvements, or bug fixes, please open an issue or submit a pull request.
Milo is licensed under the MIT License. See the LICENSE file for more details.