{"id":28458835,"url":"https://github.com/continuedev/togetherai-continue-hub","last_synced_at":"2025-07-02T09:31:15.667Z","repository":{"id":281928779,"uuid":"946835263","full_name":"continuedev/togetherai-continue-hub","owner":"continuedev","description":null,"archived":false,"fork":false,"pushed_at":"2025-06-06T02:37:44.000Z","size":113,"stargazers_count":0,"open_issues_count":58,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-06-07T00:41:16.464Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/continuedev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-03-11T18:45:23.000Z","updated_at":"2025-04-09T21:16:23.000Z","dependencies_parsed_at":"2025-04-07T21:25:01.090Z","dependency_job_id":"beac19c9-c6c1-43d4-80ed-42d990883ec9","html_url":"https://github.com/continuedev/togetherai-continue-hub","commit_stats":null,"previous_names":["continuedev/togetherai-continue-hub"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/continuedev/togetherai-continue-hub","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/continuedev%2Ftogetherai-continue-hub","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/continuedev%2Ftogetherai-continue-hub/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/continuedev%2Ftogetherai-continue-hub/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/continuedev%2Ftogetherai-continue-hub/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/continuedev","download_url":"https://codeload.github.com/continuedev/togetherai-continue-hub/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/continuedev%2Ftogetherai-continue-hub/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263111364,"owners_count":23415438,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-06-07T00:40:06.282Z","updated_at":"2025-07-02T09:31:15.655Z","avatar_url":"https://github.com/continuedev.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Together.ai Model Generator for Continue Hub\n\nThis repository contains scripts to automatically generate YAML configurations for Together.ai models to use with [Continue](https://continue.dev/).\n\n## Overview\n\nThe main script `together_models.py` fetches model information from the Together.ai API and generates YAML configuration files for use with Continue 1.0 blocks. It assigns appropriate roles to models based on their capabilities and characteristics, while excluding image, audio, and moderation models that aren't typically needed for development assistance.\n\n## Key Features\n\n- 🔄 **Automatic Updates**: Runs nightly to capture new models as they become available\n- 📊 **Version Tracking**: Maintains semantic versioning for each model YAML file\n- 🔍 **Change Detection**: Only updates YAMLs when model configuration changes\n- 🛠️ **Role Assignment**: Intelligently assigns appropriate roles based on model capabilities\n- 📝 **Detailed PR Generation**: Automatically creates PRs with comprehensive change details\n\n## Model Role Logic\n\nModels are assigned roles based on:\n\n1. **Model type**: chat, language, embedding, or rerank (image, audio, and moderation models are excluded)\n2. **Context length**: Models with context length \u003e= 8192 are assigned the 'apply' role for more complex tasks\n3. **Autocomplete role**: Only assigned to models in a curated list (AUTOCOMPLETE_MODELS) to ensure fast performance\n\n## Versioning\n\nThe generator maintains semantic versioning for each YAML configuration:\n\n- **Major version**: Incremented for backward-incompatible changes\n- **Minor version**: Incremented when model properties change (roles, context window, etc.)\n- **Patch version**: Incremented for minor fixes or updates\n\nWhen a model's configuration changes (different roles, context length, etc.), the minor version is automatically incremented.\n\n## Usage\n\n```bash\n# Fetch models from Together.ai API and generate YAML files\npython together_models.py --api-key YOUR_API_KEY [options]\n\n# Or use a previously downloaded JSON file\npython together_models.py --input-file together_api_response.json [options]\n\n# Run with summary statistics\npython together_models.py --summary\n```\n\n### Options\n\n- `--api-key KEY`: Together.ai API key (can also use TOGETHER_API_KEY env var)\n- `--input-file FILE`: Input JSON file with Together.ai models data (optional)\n- `--output-dir DIR`: Output directory for YAML files (default: ./blocks/public)\n- `--skip-free`: Skip free models (models with zero pricing)\n- `--summary`: Print summary statistics\n- `--force-regenerate`: Force regeneration of all YAML files\n- `--help`: Show help message and exit\n\n## GitHub Workflow\n\nA GitHub Actions workflow is set up to run the script nightly:\n\n1. Fetches the latest model data from Together.ai\n2. Updates YAML configurations as needed\n3. Increments version numbers for changed models\n4. Creates a pull request with detailed change information:\n   - Lists all newly added models\n   - Lists all updated models with their new version numbers\n   - Shows detailed changes for each updated model:\n     - Added/removed roles\n     - Context length changes\n\nThis detailed PR format makes it much easier to review what's changing in each update.\n\n## Testing\n\nUse the included test script to validate model role assignments:\n\n```bash\npython test_all.py\n```\n\nThis tests that:\n- Only models in the AUTOCOMPLETE_MODELS list get the autocomplete role\n- Models with context length \u003c 8192 don't get the 'apply' role\n- Image, audio, and moderation models are correctly identified for exclusion\n\n## Contributing\n\nTo contribute or modify the model role logic:\n\n1. Update the `AUTOCOMPLETE_MODELS` list in `together_models.py` to add or remove models eligible for the autocomplete role\n2. Modify the `determine_roles` function to change how roles are assigned\n3. Run the script locally to test your changes\n4. Submit a PR with the updated script and YAML files","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcontinuedev%2Ftogetherai-continue-hub","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcontinuedev%2Ftogetherai-continue-hub","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcontinuedev%2Ftogetherai-continue-hub/lists"}