tilakmuni18 commited on
Commit
9015c24
·
verified ·
1 Parent(s): 1e7e38f

Update courses.py

Browse files
Files changed (1) hide show
  1. courses.py +9 -16
courses.py CHANGED
@@ -1,4 +1,3 @@
1
- import gradio as gr
2
  from sentence_transformers import SentenceTransformer
3
  import numpy as np
4
 
@@ -21,15 +20,21 @@ courses = [
21
  ]
22
 
23
  course_texts = [course["title"] + " " + course["description"] + " " + course["curriculum"] for course in courses]
24
- model = SentenceTransformer('paraphrase-MiniLM-L6-v2')
25
 
 
 
 
 
 
 
 
26
  course_embeddings = model.encode(course_texts)
27
 
28
  def search_courses(query):
29
  query_embedding = model.encode([query])[0]
30
  similarities = np.dot(course_embeddings, query_embedding)
31
  sorted_course_indices = np.argsort(similarities)[::-1]
32
-
33
  results = []
34
  for idx in sorted_course_indices[:3]: # Top 3 results
35
  results.append({
@@ -37,18 +42,6 @@ def search_courses(query):
37
  "description": courses[idx]["description"],
38
  "curriculum": courses[idx]["curriculum"]
39
  })
40
-
41
- return results
42
-
43
- def gradio_search(query):
44
- results = search_courses(query)
45
- output = ""
46
- for result in results:
47
- output += f"**Title**: {result['title']}\n"
48
- output += f"**Description**: {result['description']}\n"
49
- output += f"**Curriculum**: {result['curriculum']}\n\n"
50
- return output
51
- interface = gr.Interface(fn=gradio_search, inputs="text", outputs="markdown", title="Smart Course Search", description="Find the most relevant free courses from Analytics Vidhya.")
52
 
 
53
 
54
- interface.launch()
 
 
1
  from sentence_transformers import SentenceTransformer
2
  import numpy as np
3
 
 
20
  ]
21
 
22
  course_texts = [course["title"] + " " + course["description"] + " " + course["curriculum"] for course in courses]
 
23
 
24
+ # Load the model with a fallback option
25
+ try:
26
+ model = SentenceTransformer('paraphrase-MiniLM-L6-v2')
27
+ except:
28
+ model = SentenceTransformer('all-MiniLM-L6-v2')
29
+
30
+ # Encode the course texts
31
  course_embeddings = model.encode(course_texts)
32
 
33
  def search_courses(query):
34
  query_embedding = model.encode([query])[0]
35
  similarities = np.dot(course_embeddings, query_embedding)
36
  sorted_course_indices = np.argsort(similarities)[::-1]
37
+
38
  results = []
39
  for idx in sorted_course_indices[:3]: # Top 3 results
40
  results.append({
 
42
  "description": courses[idx]["description"],
43
  "curriculum": courses[idx]["curriculum"]
44
  })
 
 
 
 
 
 
 
 
 
 
 
 
45
 
46
+ return results
47