Skip to content

Commit

Permalink
create detection llm endpoint
Browse files Browse the repository at this point in the history
  • Loading branch information
iam-flo committed Jan 24, 2025
1 parent 79c3666 commit ebe5fe7
Show file tree
Hide file tree
Showing 3 changed files with 50 additions and 0 deletions.
25 changes: 25 additions & 0 deletions server/intelligence-service/app/detector/bad_practice_detector.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
from typing import List

class PullRequest:
id: str
title: str
description: str

class Rule:
name: str
description: str
bad_practice_id: str

class PullRequestWithBadPractices:
pull_request_id: str
bad_practice_ids: List[str]

def detectbadpractices(pull_requests: List[PullRequest], rules: List[Rule]) -> List[PullRequestWithBadPractices]:
bad_practices = []
for pull_request in pull_requests:
bad_practice_ids = []
for rule in rules:
if rule.bad_practice_id in pull_request.description:
bad_practice_ids.append(rule.bad_practice_id)
bad_practices.append(PullRequestWithBadPractices(pull_request_id=pull_request.id, bad_practice_ids=bad_practice_ids))
return bad_practices
3 changes: 3 additions & 0 deletions server/intelligence-service/app/main.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
from fastapi import FastAPI
from .routers.mentor import router as mentor_router
from .routers.health import router as health_router
from .routers.detector import router as detector_router

app = FastAPI(
title="Hephaestus Intelligence Service API",
Expand All @@ -11,3 +12,5 @@

app.include_router(mentor_router)
app.include_router(health_router)

app.include_router(detector_router)
22 changes: 22 additions & 0 deletions server/intelligence-service/app/routers/detector.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
from typing import List
from fastapi import APIRouter
from pydantic import BaseModel

from app.detector.bad_practice_detector import PullRequestWithBadPractices, PullRequest, Rule, detectbadpractices

router = APIRouter(prefix="/detector", tags=["detector"])

class DetectorRequest(BaseModel):
pull_requests: List[PullRequest]
rules: List[Rule]

class DetectorResponse(BaseModel):
detectBadPractices: List[PullRequestWithBadPractices]

@router.post(
"/",
response_model=DetectorResponse,
summary="Detect bad practices given rules.",
)
def detect(request: DetectorRequest):
return detectbadpractices(request.pull_requests, request.rules)

0 comments on commit ebe5fe7

Please sign in to comment.