prasannahf commited on
Commit
083fef2
Β·
verified Β·
1 Parent(s): 962c3f9

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +26 -20
app.py CHANGED
@@ -7,12 +7,14 @@ from langchain_groq import ChatGroq
7
  from langsmith import traceable
8
  from typing import TypedDict
9
 
10
- # Load API keys from environment variables
11
  GROQ_API_KEY = os.getenv("GROQ_API_KEY")
12
  LANGSMITH_API_KEY = os.getenv("LANGSMITH_API_KEY")
13
 
14
- os.environ["LANGCHAIN_TRACING_V2"] = "true"
15
- os.environ["LANGCHAIN_API_KEY"] = LANGSMITH_API_KEY
 
 
16
 
17
  # Initialize Groq LLM
18
  llm = ChatGroq(groq_api_key=GROQ_API_KEY, model_name="mixtral-8x7b-32768")
@@ -61,44 +63,48 @@ def generate_test_cases(data):
61
  def make_code_review_graph():
62
  """Create a LangGraph workflow for automated code reviews"""
63
  graph_workflow = StateGraph(State)
64
-
65
  graph_workflow.add_node("code_review", code_review)
66
  graph_workflow.add_node("improvement_suggestions", improvement_suggestions)
67
  graph_workflow.add_node("generate_documentation", generate_documentation)
68
  graph_workflow.add_node("generate_test_cases", generate_test_cases)
69
-
70
  graph_workflow.add_edge(START, "code_review")
71
  graph_workflow.add_edge("code_review", "improvement_suggestions")
72
  graph_workflow.add_edge("improvement_suggestions", "generate_documentation")
73
  graph_workflow.add_edge("generate_documentation", "generate_test_cases")
74
  graph_workflow.add_edge("generate_test_cases", END)
75
-
76
  return graph_workflow.compile()
77
 
78
  # Streamlit UI
79
- st.title("πŸ›  AI-Powered Code Review with LangSmith Debugging")
80
- st.write("Automate your code reviews using Groq AI, LangGraph, and LangSmith.")
81
 
82
- code_snippet = st.text_area("Paste your code snippet for review:", height=200)
 
83
 
84
- if st.button("Review Code"):
85
  if not code_snippet.strip():
86
- st.warning("⚠️ Please enter a code snippet.")
87
  else:
88
  try:
89
  review_agent = make_code_review_graph()
90
  result = review_agent.invoke({"code_snippet": code_snippet})
91
-
 
92
  st.subheader("πŸ’‘ Review Comments")
93
- st.text_area("", result.get("review_comments", ""), height=150)
94
-
95
  st.subheader("πŸ”§ Suggested Improvements")
96
- st.text_area("", result.get("suggestions", ""), height=150)
97
-
98
  st.subheader("πŸ“– Generated Documentation")
99
- st.text_area("", result.get("documentation", ""), height=150)
100
-
101
  st.subheader("πŸ§ͺ Suggested Test Cases")
102
- st.text_area("", result.get("test_cases", ""), height=150)
 
103
  except Exception as e:
104
- st.error(f"⚠️ Error: {str(e)}\n{traceback.format_exc()}")
 
 
7
  from langsmith import traceable
8
  from typing import TypedDict
9
 
10
+ # Load API Keys (Set in Hugging Face Spaces)
11
  GROQ_API_KEY = os.getenv("GROQ_API_KEY")
12
  LANGSMITH_API_KEY = os.getenv("LANGSMITH_API_KEY")
13
 
14
+ # Ensure API Keys are set
15
+ if not GROQ_API_KEY or not LANGSMITH_API_KEY:
16
+ st.error("⚠️ Please set GROQ_API_KEY and LANGSMITH_API_KEY in your environment variables.")
17
+ st.stop()
18
 
19
  # Initialize Groq LLM
20
  llm = ChatGroq(groq_api_key=GROQ_API_KEY, model_name="mixtral-8x7b-32768")
 
63
  def make_code_review_graph():
64
  """Create a LangGraph workflow for automated code reviews"""
65
  graph_workflow = StateGraph(State)
66
+
67
  graph_workflow.add_node("code_review", code_review)
68
  graph_workflow.add_node("improvement_suggestions", improvement_suggestions)
69
  graph_workflow.add_node("generate_documentation", generate_documentation)
70
  graph_workflow.add_node("generate_test_cases", generate_test_cases)
71
+
72
  graph_workflow.add_edge(START, "code_review")
73
  graph_workflow.add_edge("code_review", "improvement_suggestions")
74
  graph_workflow.add_edge("improvement_suggestions", "generate_documentation")
75
  graph_workflow.add_edge("generate_documentation", "generate_test_cases")
76
  graph_workflow.add_edge("generate_test_cases", END)
77
+
78
  return graph_workflow.compile()
79
 
80
  # Streamlit UI
81
+ st.title("πŸ›  AI-Powered Code Review with LangGraph & LangSmith")
82
+ st.write("Analyze and improve your code using AI-based feedback, suggestions, documentation, and test cases.")
83
 
84
+ # Input Field
85
+ code_snippet = st.text_area("πŸ“Œ Paste your code snippet below:", height=200)
86
 
87
+ if st.button("πŸ” Review Code"):
88
  if not code_snippet.strip():
89
+ st.warning("⚠️ Please enter a valid code snippet.")
90
  else:
91
  try:
92
  review_agent = make_code_review_graph()
93
  result = review_agent.invoke({"code_snippet": code_snippet})
94
+
95
+ # Display Results with Clear Formatting
96
  st.subheader("πŸ’‘ Review Comments")
97
+ st.write(result["review_comments"])
98
+
99
  st.subheader("πŸ”§ Suggested Improvements")
100
+ st.write(result["suggestions"])
101
+
102
  st.subheader("πŸ“– Generated Documentation")
103
+ st.code(result["documentation"], language="python")
104
+
105
  st.subheader("πŸ§ͺ Suggested Test Cases")
106
+ st.code(result["test_cases"], language="python")
107
+
108
  except Exception as e:
109
+ st.error(f"⚠️ Error: {str(e)}")
110
+ st.text(traceback.format_exc())