naman1102 commited on
Commit
2c15ffb
·
1 Parent(s): 9a88164
Files changed (2) hide show
  1. analyzer.py +16 -14
  2. chatbot_page.py +4 -2
analyzer.py CHANGED
@@ -11,17 +11,12 @@ def analyze_code(code: str) -> str:
11
  client = OpenAI(api_key=os.getenv("modal_api"))
12
  client.base_url = os.getenv("base_url")
13
  system_prompt = (
14
- "You are a helpful assistant. Analyze the code given to you. "
15
- "Return your response strictly in JSON format with the following keys: "
16
- "'strength', 'weaknesses', 'speciality', 'relevance rating'. "
17
- "Do not include any other text outside the JSON."
18
- "the reply should just be the following format:"
19
- "{"
20
- " 'strength': '...', "
21
- " 'weaknesses': '...', "
22
- " 'speciality': '...', "
23
- " 'relevance rating': '...'"
24
- "}"
25
  )
26
  response = client.chat.completions.create(
27
  model="neuralmagic/Meta-Llama-3.1-8B-Instruct-quantized.w4a16", # Updated model
@@ -80,12 +75,19 @@ def combine_repo_files_for_llm(repo_dir="repo_files", output_file="combined_repo
80
 
81
  def analyze_combined_file(output_file="combined_repo.txt"):
82
  """
83
- Reads the combined file and passes its contents to analyze_code, returning the LLM's output.
 
84
  """
85
  try:
86
  with open(output_file, "r", encoding="utf-8") as f:
87
  lines = f.readlines()
88
- code = "".join(lines[:500])
89
- return analyze_code(code)
 
 
 
 
 
 
90
  except Exception as e:
91
  return f"Error analyzing combined file: {e}"
 
11
  client = OpenAI(api_key=os.getenv("modal_api"))
12
  client.base_url = os.getenv("base_url")
13
  system_prompt = (
14
+ "You are a highly precise and strict JSON generator. Analyze the code given to you. "
15
+ "Your ONLY output must be a valid JSON object with the following keys: 'strength', 'weaknesses', 'speciality', 'relevance rating'. "
16
+ "Do NOT include any explanation, markdown, or text outside the JSON. Do NOT add any commentary, preamble, or postscript. "
17
+ "If you cannot answer, still return a valid JSON with empty strings for each key. "
18
+ "Example of the ONLY valid output:\n"
19
+ "{\n 'strength': '...', \n 'weaknesses': '...', \n 'speciality': '...', \n 'relevance rating': '...'\n}"
 
 
 
 
 
20
  )
21
  response = client.chat.completions.create(
22
  model="neuralmagic/Meta-Llama-3.1-8B-Instruct-quantized.w4a16", # Updated model
 
75
 
76
  def analyze_combined_file(output_file="combined_repo.txt"):
77
  """
78
+ Reads the combined file, splits it into 500-line chunks, analyzes each chunk, and aggregates the LLM's output.
79
+ Returns the aggregated analysis as a string.
80
  """
81
  try:
82
  with open(output_file, "r", encoding="utf-8") as f:
83
  lines = f.readlines()
84
+ chunk_size = 500
85
+ analyses = []
86
+ for i in range(0, len(lines), chunk_size):
87
+ chunk = "".join(lines[i:i+chunk_size])
88
+ analysis = analyze_code(chunk)
89
+ analyses.append(analysis)
90
+ # Optionally, you could merge the JSONs here, but for now, return all analyses as a list
91
+ return "\n---\n".join(analyses)
92
  except Exception as e:
93
  return f"Error analyzing combined file: {e}"
chatbot_page.py CHANGED
@@ -4,7 +4,7 @@ import os
4
 
5
  # System prompt for the chatbot
6
  CHATBOT_SYSTEM_PROMPT = (
7
- "You are a helpful assistant. Your goal is to help the user describe their ideal open-source repo. "
8
  "Ask questions to clarify what they want, their use case, preferred language, features, etc. "
9
  "When the user clicks 'End Chat', analyze the conversation and return about 5 keywords for repo search. "
10
  "Return only the keywords as a comma-separated list."
@@ -69,7 +69,9 @@ def extract_keywords_from_conversation(history):
69
  with gr.Blocks() as chatbot_demo:
70
  gr.Markdown("## Repo Recommendation Chatbot")
71
  chatbot = gr.Chatbot()
72
- state = gr.State([]) # conversation history
 
 
73
  user_input = gr.Textbox(label="Your message", placeholder="Describe your ideal repo or answer the assistant's questions...")
74
  send_btn = gr.Button("Send")
75
  end_btn = gr.Button("End Chat and Extract Keywords")
 
4
 
5
  # System prompt for the chatbot
6
  CHATBOT_SYSTEM_PROMPT = (
7
+ "You are a helpful assistant. Your goal is to help the user describe their ideal Hugging face repo. "
8
  "Ask questions to clarify what they want, their use case, preferred language, features, etc. "
9
  "When the user clicks 'End Chat', analyze the conversation and return about 5 keywords for repo search. "
10
  "Return only the keywords as a comma-separated list."
 
69
  with gr.Blocks() as chatbot_demo:
70
  gr.Markdown("## Repo Recommendation Chatbot")
71
  chatbot = gr.Chatbot()
72
+ # Initial assistant message
73
+ initial_message = "Hello! What kind of open-source repo are you looking for? Please describe your ideal repo, use case, preferred language, or any features you want."
74
+ state = gr.State([["", initial_message]]) # Start with assistant message
75
  user_input = gr.Textbox(label="Your message", placeholder="Describe your ideal repo or answer the assistant's questions...")
76
  send_btn = gr.Button("Send")
77
  end_btn = gr.Button("End Chat and Extract Keywords")