File size: 1,508 Bytes
b7d0764 386b976 b7d0764 18c08a2 386b976 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
import json
import gradio as gr
import pandas as pd
def read_json(file_name):
with open(file_name, "r") as f:
json_data = json.load(f)
return json_data
data = {"project_name": [], "description": []}
json_file = "awesome-ChatGPT-repositories.json"
json_data = read_json(json_file)
for v in json_data["contents"].values():
for url, repo in v.items():
description = repo["multilingual_descriptions"]["en"]
project_name = repo["repository_name"]
data["project_name"].append(f"[{project_name}]({url})")
data["description"].append(description)
data = pd.DataFrame(data)
def show_search_results(queries):
queries = queries.lower()
queries = queries.split()
df_search = data
for query in queries:
contained_description = data["description"].str.contains(query)
contained_project_name = data["project_name"].str.contains(query)
df_search = df_search[contained_description | contained_project_name]
return df_search
with gr.Blocks() as demo:
gr.Markdown(
"""
# Awesome ChatGPT repositories search 🔎
You can search for open-source software from [1500+ repositories](https://github.com/taishi-i/awesome-ChatGPT-repositories).
"""
)
query = gr.Textbox(label="Search words", placeholder="prompt")
df = gr.DataFrame(
value=data, type="pandas", datatype="markdown", height=1000
)
query.change(fn=show_search_results, inputs=query, outputs=df)
demo.launch()
|