A command-line tool for AI Developer Course challenges, built with Deno and TypeScript. It helps automate solving various programming challenges by integrating with AI models through their APIs.
This is my project developed during the AI Devs 3 course in which I was a participant.
More about AI Devs 3 here.
This is entirely created by me and my AI assistants. 🤖🚀
This is my first project in Deno. Why? 🤔 For fun and learning. 🧠
- Trick Robot Verification - Helps bypass robot verification challenges
- Solve Web Question - Assists in solving web-based questions
- Calibration File Fix - Processes and fixes calibration files by evaluating mathematical expressions and handling test cases
- Censorship Task - Processes text content and applies censorship rules using AI
- Auditions Task - Processes audio recordings, transcribes them, and analyzes content using AI
Usage:
deno run --allow-net --allow-env --allow-read src/main.ts solve-web-question <url>
deno run --allow-net --allow-env --allow-read --allow-write src/main.ts calibration-file-fix
deno run --allow-net --allow-env --allow-read --allow-write src/main.ts censorship-task
deno run --allow-net --allow-env --allow-read --allow-write src/main.ts auditions-task
This use case includes a robot verification mechanism that communicates with a verification endpoint.
It allows the system to handle robot verification challenges by:
- Processing incoming verification questions
- Using AI to generate responses based on specific knowledge
- Sending back verification responses
To use it run:
deno run --allow-net --allow-env --allow-read src/main.ts solve-web-question <url>
The system handles verification requests in JSON format:
The application includes functionality to process audio recordings and analyze their content.
What this use case does:
- Downloads and processes audio files from a ZIP archive
- Transcribes audio using OpenAI's audio model
- Caches transcriptions as text files for future use
- Analyzes transcriptions using AI to extract specific information
- Verifies results with the AI Devs API
Run this use case:
deno run --allow-net --allow-env --allow-read --allow-write src/main.ts auditions-task
TBD at the later point
This project uses:
- Deno 2
- TypeScript
- Test Driven Development
- Anthropic AI SDK
- official OpenAI REST API
The application requires the following environment variables to be set:
USERNAME
- Username for authenticationPASSWORD
- Password for authenticationANTHROPIC_API_KEY
- Your Anthropic API keyAI_MODEL
- The AI model to useTARGET_COMPANY_URL
- The target URL for web questionsTARGET_COMPANY_VERIFICATION_ENDPOINT
- The complete URL for the verification endpointCALIBRATION_FILE_URL
- URL to download the calibration file fromAI_DEVS_API_KEY
- API key for AI Devs verificationAI_DEVS_VERIFICATION_URL
- The complete URL for the verification endpointCENSORSHIP_TASK_URL
- The complete URL for the censorship task endpointAUDITIONS_TASK_MP3S_URL
- URL to download the ZIP file containing audio recordingsAUDITIONS_TASK_NAME
- Task name for verificationOPENAI_API_KEY
- Your OpenAI API key for audio transcriptionOPENAI_AUDIO_MODEL
- OpenAI model to use for audio transcription
To set up your environment:
Create a .env
file in the root directory with these variables.
- Deno 2.0 or higher
- Internet connection
- Environment variables configured in
.env
file - Required permissions:
--allow-net
for network access--allow-env
for environment variables--allow-read
for .env file--allow-write
for creation and writing new files
deno test --allow-net --allow-env --allow-read --allow-write
The application handles several types of errors:
- Missing or invalid arguments
- Network connection issues
- Missing environment variables
- HTML parsing errors
- Form submission errors
- AI processing errors
The project uses GitHub Actions for continuous integration, which:
- Verifies code formatting
- Runs linter checks
- Executes all tests
The CI pipeline runs on every push to the main branch and on pull requests.
- Create a new directory under
src/use-cases/
- Implement the use case logic
- Add the use case to the
useCases
object insrc/main.ts
- Update this README with usage instructions
- Add corresponding tests
MIT