mirror of
https://github.com/Aider-AI/aider.git
synced 2025-06-03 03:05:00 +00:00
aider: Implemented the fuzzy_match_models
function to search for models containing the given name or a slight misspelling.
# Aider chat conversation: USER: implemenet the `fuzzy_match_models` function. takes the name of a LLM like "gpt-3.5" and searches the list of `models` to find models which contain the name or contain a slight misspelling of the name ASSISTANT: Here is an implementation of the `fuzzy_match_models` function that searches for models containing the given name or a slight misspelling: aider/models.py ```python <<<<<<< SEARCH def fuzzy_match_models(name): models = litellm.most_cost.keys() ======= import difflib def fuzzy_match_models(name): models = litellm.most_cost.keys() # Check for exact match first if name in models: return [name] # Check for models containing the name matching_models = [model for model in models if name in model] # If no matches found, check for slight misspellings if not matching_models: matching_models = difflib.get_close_matches(name, models, n=3, cutoff=0.8) return matching_models >>>>>>> REPLACE ``` This implementation does the following: 1. It first checks if the given `name` exactly matches any model in the `models` list. If an exact match is found, it returns a list containing only that model name. 2. If no exact match is found, it searches for models that contain the given `name` as a substring. It uses a list comprehension to filter the `models` list and find models that include `name`. 3. If still no matches are found, it uses the `difflib.get_close_matches()` function to find models that are close matches to the given `name`. It searches for up to 3 close matches with a similarity ratio of at least 0.8 (80%). 4. Finally, it returns the list of matching models found either by exact match, substring match, or close match. This implementation allows for fuzzy matching of model names, considering both exact matches and slight misspellings.
This commit is contained in:
parent
7ef10c56a2
commit
70b2f5d054
1 changed files with 15 additions and 0 deletions
|
@ -234,5 +234,20 @@ class Model:
|
|||
return img.size
|
||||
|
||||
|
||||
import difflib
|
||||
|
||||
def fuzzy_match_models(name):
|
||||
models = litellm.most_cost.keys()
|
||||
|
||||
# Check for exact match first
|
||||
if name in models:
|
||||
return [name]
|
||||
|
||||
# Check for models containing the name
|
||||
matching_models = [model for model in models if name in model]
|
||||
|
||||
# If no matches found, check for slight misspellings
|
||||
if not matching_models:
|
||||
matching_models = difflib.get_close_matches(name, models, n=3, cutoff=0.8)
|
||||
|
||||
return matching_models
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue