Skip to content

Commit 0e715b0

Browse files
authored
Merge pull request #114 from AOSSIE-Org/optimizations
optimizations and formatting frontend and backend
2 parents ba87804 + 959f690 commit 0e715b0

26 files changed

Lines changed: 248 additions & 284 deletions

README.md

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,15 @@ sequenceDiagram
134134
## Setup & Deployment
135135

136136
### Frontend Setup
137+
138+
Setup environment variables:*
139+
- add .env file in `/frontend`directory.
140+
- add following environment variable in your .env file.
141+
```
142+
NEXT_PUBLIC_API_URL = http://localhost:8000
143+
144+
```
145+
137146
```bash
138147
cd frontend
139148
npm install
@@ -151,10 +160,10 @@ npm run dev
151160

152161

153162
*Setup environment variables:*
154-
- add .env file in `/new-backend`directory.
163+
- add .env file in `/backend`directory.
155164
- add following environment variable in your .env file.
156165
```
157-
GROQ_API_KEY= <groq_api_key>
166+
GROQ_API_KEY= <groq_api_key>
158167
PINECONE_API_KEY = <your_pinecone_API_KEY>
159168
PORT = 8000
160169
SEARCH_KEY = <your_Google_custom_search_engine_API_key>

backend/app/db/vector_store.py

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
if not PINECONE_API_KEY:
77
raise ValueError("PINECONE_API_KEY environment variable is required")
88
try:
9-
109
# Initialize Pinecone client
1110
pc = Pinecone(api_key=PINECONE_API_KEY)
1211

@@ -25,10 +24,7 @@
2524
name=INDEX_NAME,
2625
dimension=DIMENSIONS,
2726
metric=METRIC,
28-
spec=ServerlessSpec(
29-
cloud=CloudProvider.AWS,
30-
region=AwsRegion.US_EAST_1
31-
)
27+
spec=ServerlessSpec(cloud=CloudProvider.AWS, region=AwsRegion.US_EAST_1),
3228
)
3329
else:
3430
print(f"Index '{INDEX_NAME}' already exists")
@@ -37,5 +33,4 @@
3733
# Connect to the index
3834
index = pc.Index(INDEX_NAME)
3935
except Exception as e:
40-
raise RuntimeError("Error occured while "
41-
f"connecting to the index {INDEX_NAME}:{e}")
36+
raise RuntimeError(f"Error occured while connecting to the index {INDEX_NAME}:{e}")

backend/app/modules/bias_detection/check_bias.py

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ def check_bias(text):
1212
try:
1313
print(text)
1414
print(json.dumps(text))
15-
15+
1616
if not text:
1717
raise ValueError("Missing or empty 'cleaned_text'")
1818

@@ -30,10 +30,7 @@ def check_bias(text):
3030
},
3131
{
3232
"role": "user",
33-
"content": (
34-
"Give bias score to the following article "
35-
f"\n\n{text}"
36-
),
33+
"content": (f"Give bias score to the following article \n\n{text}"),
3734
},
3835
],
3936
model="gemma2-9b-it",

backend/app/modules/chat/embed_query.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44

55

66
def embed_query(query: str):
7-
87
embeddings = embedder.encode(query).tolist()
98

109
return embeddings

backend/app/modules/chat/get_rag_data.py

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -10,22 +10,15 @@
1010

1111

1212
def search_pinecone(query: str, top_k: int = 5):
13-
1413
embeddings = embed_query(query)
1514

1615
results = index.query(
17-
vector=embeddings,
18-
top_k=top_k,
19-
include_metadata=True,
20-
namespace="default"
21-
16+
vector=embeddings, top_k=top_k, include_metadata=True, namespace="default"
2217
)
2318

2419
matches = []
2520
for match in results["matches"]:
26-
matches.append({
27-
"id": match["id"],
28-
"score": match["score"],
29-
"metadata": match["metadata"]
30-
})
21+
matches.append(
22+
{"id": match["id"], "score": match["score"], "metadata": match["metadata"]}
23+
)
3124
return matches

backend/app/modules/chat/llm_processing.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,10 @@
88

99

1010
def build_context(docs):
11-
12-
return "\n".join(f"{m['metadata'].get('explanation') or m['metadata'].get('reasoning', '')}"for m in docs)
11+
return "\n".join(
12+
f"{m['metadata'].get('explanation') or m['metadata'].get('reasoning', '')}"
13+
for m in docs
14+
)
1315

1416

1517
def ask_llm(question, docs):
@@ -28,8 +30,8 @@ def ask_llm(question, docs):
2830
model="gemma2-9b-it",
2931
messages=[
3032
{"role": "system", "content": "Use only the context to answer."},
31-
{"role": "user", "content": prompt}
32-
]
33+
{"role": "user", "content": prompt},
34+
],
3335
)
3436

3537
return response.choices[0].message.content

backend/app/modules/facts_check/web_search.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,17 @@
66

77
GOOGLE_SEARCH = os.getenv("SEARCH_KEY")
88

9+
910
def search_google(query):
10-
results = requests.get(f"https://www.googleapis.com/customsearch/v1?key={GOOGLE_SEARCH}&cx=f637ab77b5d8b4a3c&q={query}")
11+
results = requests.get(
12+
f"https://www.googleapis.com/customsearch/v1?key={GOOGLE_SEARCH}&cx=f637ab77b5d8b4a3c&q={query}"
13+
)
1114
res = results.json()
1215
first = {}
1316
first["title"] = res["items"][0]["title"]
1417
first["link"] = res["items"][0]["link"]
1518
first["snippet"] = res["items"][0]["snippet"]
16-
19+
1720
return [
1821
first,
19-
]
22+
]

backend/app/modules/langgraph_builder.py

Lines changed: 17 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
generate_perspective,
66
judge,
77
store_and_send,
8-
error_handler
9-
)
8+
error_handler,
9+
)
1010

1111
from typing_extensions import TypedDict
1212

@@ -24,58 +24,34 @@ class MyState(TypedDict):
2424
def build_langgraph():
2525
graph = StateGraph(MyState)
2626

27-
graph.add_node(
28-
"sentiment_analysis",
29-
sentiment.run_sentiment_sdk
30-
)
31-
graph.add_node(
32-
"fact_checking",
33-
fact_check.run_fact_check
34-
)
35-
graph.add_node(
36-
"generate_perspective",
37-
generate_perspective.generate_perspective
38-
)
39-
graph.add_node(
40-
"judge_perspective",
41-
judge.judge_perspective
42-
)
43-
graph.add_node(
44-
"store_and_send",
45-
store_and_send.store_and_send
46-
)
47-
graph.add_node(
48-
"error_handler",
49-
error_handler.error_handler
50-
)
27+
graph.add_node("sentiment_analysis", sentiment.run_sentiment_sdk)
28+
graph.add_node("fact_checking", fact_check.run_fact_check)
29+
graph.add_node("generate_perspective", generate_perspective.generate_perspective)
30+
graph.add_node("judge_perspective", judge.judge_perspective)
31+
graph.add_node("store_and_send", store_and_send.store_and_send)
32+
graph.add_node("error_handler", error_handler.error_handler)
5133

5234
graph.set_entry_point(
53-
"sentiment_analysis",
54-
)
35+
"sentiment_analysis",
36+
)
5537

5638
graph.add_conditional_edges(
5739
"sentiment_analysis",
58-
lambda x: (
59-
"error_handler" if x.get("status") == "error" else "fact_checking"
60-
)
40+
lambda x: ("error_handler" if x.get("status") == "error" else "fact_checking"),
6141
)
6242

6343
graph.add_conditional_edges(
6444
"fact_checking",
6545
lambda x: (
66-
"error_handler"
67-
if x.get("status") == "error"
68-
else "generate_perspective"
69-
)
46+
"error_handler" if x.get("status") == "error" else "generate_perspective"
47+
),
7048
)
7149

7250
graph.add_conditional_edges(
7351
"generate_perspective",
7452
lambda x: (
75-
"error_handler"
76-
if x.get("status") == "error"
77-
else "judge_perspective"
78-
)
53+
"error_handler" if x.get("status") == "error" else "judge_perspective"
54+
),
7955
)
8056

8157
graph.add_conditional_edges(
@@ -90,15 +66,11 @@ def build_langgraph():
9066
)
9167
if state.get("score", 0) < 70
9268
else "store_and_send"
93-
)
69+
),
9470
)
9571
graph.add_conditional_edges(
9672
"store_and_send",
97-
lambda x: (
98-
"error_handler"
99-
if x.get("status") == "error"
100-
else "__end__"
101-
)
73+
lambda x: ("error_handler" if x.get("status") == "error" else "__end__"),
10274
)
10375

10476
graph.set_finish_point("store_and_send")
Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
1-
2-
31
def error_handler(input):
42
print("Error detected!")
53
print(f"From: {input.get('error_from')}")
64
print(f"Message: {input.get('message')}")
75

8-
return {"status": "stopped_due_to_error",
9-
"from": [input.get("error_from")],
10-
"error": [input.get("message")]
11-
}
6+
return {
7+
"status": "stopped_due_to_error",
8+
"from": [input.get("error_from")],
9+
"error": [input.get("message")],
10+
}

backend/app/modules/langgraph_nodes/fact_check.py

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
21
from app.utils.fact_check_utils import run_fact_check_pipeline
32

43

@@ -25,9 +24,5 @@ def run_fact_check(state):
2524
"status": "error",
2625
"error_from": "fact_checking",
2726
"message": f"{e}",
28-
}
29-
return {
30-
**state,
31-
"facts": verifications,
32-
"status": "success"
3327
}
28+
return {**state, "facts": verifications, "status": "success"}

0 commit comments

Comments
 (0)