Spaces:
Running
Running
from typing import List | |
import gradio as gr | |
from angle_emb import AnglE | |
from scipy import spatial | |
def cosine_similarity(vec1: List[int], vec2: List[int]): | |
""" Calculate cosine similarity between two vectors. | |
:param vec1: a list of integers | |
:param vec2: a list of integers | |
:return: a float value between 0 and 1, indicating the similarity between the two vectors. | |
""" | |
return 1 - spatial.distance.cosine(vec1, vec2) | |
uae = AnglE.from_pretrained('WhereIsAI/UAE-Large-V1').to('cpu') | |
uae_code = AnglE.from_pretrained('WhereIsAI/UAE-Code-Large-V1').to('cpu') | |
def code_similarity(code1, code2, model): | |
if model == "UAE-Code-Large-V1": | |
v1 = uae_code.encode(code1) | |
v2 = uae_code.encode(code2) | |
else: | |
v1 = uae.encode(code1) | |
v2 = uae.encode(code2) | |
return cosine_similarity(v1[0], v2[0]) | |
demo = gr.Interface( | |
code_similarity, | |
[ | |
gr.Textbox(label='code 1'), | |
gr.Textbox(label='code 2'), | |
gr.Radio(["UAE-Code-Large-V1", "UAE-Large-V1"], label="model", value="UAE-Code-Large-V1"), | |
], | |
"text", | |
examples=[ | |
# sample 1 | |
["""# Approach 2: Quicksort using list comprehension | |
def quicksort(arr): | |
if len(arr) <= 1: | |
return arr | |
else: | |
pivot = arr[0] | |
left = [x for x in arr[1:] if x < pivot] | |
right = [x for x in arr[1:] if x >= pivot] | |
return quicksort(left) + [pivot] + quicksort(right) | |
# Example usage | |
arr = [1, 7, 4, 1, 10, 9, -2] | |
sorted_arr = quicksort(arr) | |
print("Sorted Array in Ascending Order:") | |
print(sorted_arr)""", """def quick_sort(arr): | |
if len(arr) <= 1: | |
return arr | |
else: | |
return qsort([x for x in arr[1:] if x < arr[0]]) | |
+ [arr[0]] | |
+ qsort([x for x in arr[1:] if x >= arr[0]])""", """UAE-Code-Large-V1""" | |
], | |
# sample 2 | |
["""def bubblesort(elements): | |
# Looping from size of array from last index[-1] to index [0] | |
for n in range(len(elements)-1, 0, -1): | |
swapped = False | |
for i in range(n): | |
if elements[i] > elements[i + 1]: | |
swapped = True | |
# swapping data if the element is less than next element in the array | |
elements[i], elements[i + 1] = elements[i + 1], elements[i] | |
if not swapped: | |
# exiting the function if we didn't make a single swap | |
# meaning that the array is already sorted. | |
return | |
elements = [39, 12, 18, 85, 72, 10, 2, 18] | |
print("Unsorted list is,") | |
print(elements) | |
bubblesort(elements) | |
print("Sorted Array is, ") | |
print(elements)""", """def quick_sort(arr): | |
if len(arr) <= 1: | |
return arr | |
else: | |
return qsort([x for x in arr[1:] if x < arr[0]]) | |
+ [arr[0]] | |
+ qsort([x for x in arr[1:] if x >= arr[0]])""", """UAE-Code-Large-V1""" | |
], | |
] | |
) | |
if __name__ == "__main__": | |
demo.launch() | |