naman1102 commited on
Commit
1a943f1
·
1 Parent(s): 631e1ee
Files changed (2) hide show
  1. analyzer.py +13 -1
  2. app.py +17 -1
analyzer.py CHANGED
@@ -1,5 +1,6 @@
1
  import openai
2
  import os
 
3
 
4
  def analyze_code(code: str) -> str:
5
  """
@@ -8,7 +9,12 @@ def analyze_code(code: str) -> str:
8
  """
9
  from openai import OpenAI
10
  client = OpenAI()
11
- system_prompt = "You are a helpful assistant. Analyze the code given to you. Provide insights, strengths, weaknesses, and suggestions for improvement."
 
 
 
 
 
12
  response = client.chat.completions.create(
13
  model="gpt-4-1106-preview", # GPT-4.1 mini
14
  messages=[
@@ -20,6 +26,12 @@ def analyze_code(code: str) -> str:
20
  )
21
  return response.choices[0].message.content
22
 
 
 
 
 
 
 
23
  def combine_repo_files_for_llm(repo_dir="repo_files", output_file="combined_repo.txt"):
24
  """
25
  Combines all .py and .md files in the given directory (recursively) into a single text file.
 
1
  import openai
2
  import os
3
+ import json
4
 
5
  def analyze_code(code: str) -> str:
6
  """
 
9
  """
10
  from openai import OpenAI
11
  client = OpenAI()
12
+ system_prompt = (
13
+ "You are a helpful assistant. Analyze the code given to you. "
14
+ "Return your response strictly in JSON format with the following keys: "
15
+ "'strength', 'weaknesses', 'speciality', 'relevance rating'. "
16
+ "Do not include any other text outside the JSON."
17
+ )
18
  response = client.chat.completions.create(
19
  model="gpt-4-1106-preview", # GPT-4.1 mini
20
  messages=[
 
26
  )
27
  return response.choices[0].message.content
28
 
29
+ def parse_llm_json_response(response: str):
30
+ try:
31
+ return json.loads(response)
32
+ except Exception as e:
33
+ return {"error": f"Failed to parse JSON: {e}", "raw": response}
34
+
35
  def combine_repo_files_for_llm(repo_dir="repo_files", output_file="combined_repo.txt"):
36
  """
37
  Combines all .py and .md files in the given directory (recursively) into a single text file.
app.py CHANGED
@@ -2,7 +2,7 @@ import gradio as gr
2
  import regex as re
3
  import csv
4
  import pandas as pd
5
- from analyzer import combine_repo_files_for_llm, analyze_combined_file
6
  from hf_utils import download_space_repo
7
 
8
  # from hf_utils import download_space_repo
@@ -57,6 +57,22 @@ def show_combined_repo_and_llm():
57
  except Exception as e:
58
  return f"Error reading {txt_path}: {e}", ""
59
  llm_output = analyze_combined_file(txt_path)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
60
  return combined_content, llm_output
61
 
62
  repo_id_input = gr.Textbox(label="Enter repo IDs (comma or newline separated)", lines=5, placeholder="repo1, repo2\nrepo3")
 
2
  import regex as re
3
  import csv
4
  import pandas as pd
5
+ from analyzer import combine_repo_files_for_llm, analyze_combined_file, parse_llm_json_response
6
  from hf_utils import download_space_repo
7
 
8
  # from hf_utils import download_space_repo
 
57
  except Exception as e:
58
  return f"Error reading {txt_path}: {e}", ""
59
  llm_output = analyze_combined_file(txt_path)
60
+ llm_json = parse_llm_json_response(llm_output)
61
+ # Update CSV for the first repo id
62
+ csv_filename = "repo_ids.csv"
63
+ try:
64
+ df = pd.read_csv(csv_filename)
65
+ for idx, row in df.iterrows():
66
+ if row["repo id"] == first_repo_id:
67
+ if isinstance(llm_json, dict):
68
+ df.at[idx, "strength"] = llm_json.get("strength", "")
69
+ df.at[idx, "weaknesses"] = llm_json.get("weaknesses", "")
70
+ df.at[idx, "speciality"] = llm_json.get("speciality", "")
71
+ df.at[idx, "relevance rating"] = llm_json.get("relevance rating", "")
72
+ break
73
+ df.to_csv(csv_filename, index=False)
74
+ except Exception as e:
75
+ pass # Optionally log error
76
  return combined_content, llm_output
77
 
78
  repo_id_input = gr.Textbox(label="Enter repo IDs (comma or newline separated)", lines=5, placeholder="repo1, repo2\nrepo3")