فهرست منبع

Merge pull request #20 from jmorganca/close-matches

use difflib.get_close_matches
Michael Yang 1 سال پیش
والد
کامیت
cc329b3dd8
1فایلهای تغییر یافته به همراه3 افزوده شده و 13 حذف شده
  1. 3 13
      ollama/prompt.py

+ 3 - 13
ollama/prompt.py

@@ -1,19 +1,9 @@
-from os import path
-from difflib import SequenceMatcher
+from difflib import get_close_matches
 from jinja2 import Environment, PackageLoader
 
 
 def template(name, prompt):
-    best_ratio = 0
-    best_template = ''
-
     environment = Environment(loader=PackageLoader(__name__, 'templates'))
-    for template in environment.list_templates():
-        base, _ = path.splitext(template)
-        ratio = SequenceMatcher(None, path.basename(name).lower(), base).ratio()
-        if ratio > best_ratio:
-            best_ratio = ratio
-            best_template = template
-
-    template = environment.get_template(best_template)
+    best_templates = get_close_matches(name, environment.list_templates(), n=1, cutoff=0)
+    template = environment.get_template(best_templates.pop())
     return template.render(prompt=prompt)