| 48 | // Validate tab autocomplete model(s) |
| 49 | if (config.tabAutocompleteModel) { |
| 50 | function validateTabAutocompleteModel(modelDescription: ModelDescription) { |
| 51 | const modelName = modelDescription.model.toLowerCase(); |
| 52 | const nonAutocompleteModels = [ |
| 53 | // "gpt", |
| 54 | // "claude", |
| 55 | "mistral", |
| 56 | "instruct", |
| 57 | ]; |
| 58 | |
| 59 | if ( |
| 60 | nonAutocompleteModels.some((m) => modelName.includes(m)) && |
| 61 | !modelName.includes("deepseek") && |
| 62 | !modelName.includes("codestral") && |
| 63 | !modelName.toLowerCase().includes("coder") |
| 64 | ) { |
| 65 | errors.push({ |
| 66 | fatal: false, |
| 67 | message: `${modelDescription.model} is not trained for tab-autocomplete, and will result in low-quality suggestions. See the docs to learn more about why: https://docs.continue.dev/features/tab-autocomplete#i-want-better-completions-should-i-use-gpt-4`, |
| 68 | }); |
| 69 | } |
| 70 | } |
| 71 | |
| 72 | if (Array.isArray(config.tabAutocompleteModel)) { |
| 73 | config.tabAutocompleteModel.forEach(validateTabAutocompleteModel); |