Skip to content

Commit

Permalink
add search para for /admin/users/search
Browse files Browse the repository at this point in the history
  • Loading branch information
sszgwdk authored and Mini256 committed Feb 11, 2025
1 parent f561d4f commit 136f9fa
Show file tree
Hide file tree
Showing 7 changed files with 56 additions and 57 deletions.
1 change: 1 addition & 0 deletions backend/app/api/admin_routes/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ class EmbeddingModelDescriptor(EmbeddingModelItem):

class UserDescriptor(BaseModel):
id: UUID
email: str


class KnowledgeBaseDescriptor(BaseModel):
Expand Down
24 changes: 12 additions & 12 deletions backend/app/api/admin_routes/stats.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,11 @@

from app.api.deps import CurrentSuperuserDep, SessionDep
from app.repositories import chat_repo
from app.models import Chat, Feedback
from app.models import Feedback
from app.models.base import UUIDBaseModel

from app.repositories import chat_repo

router = APIRouter()


Expand Down Expand Up @@ -48,19 +50,17 @@ def list_chat_origins(
session: SessionDep,
user: CurrentSuperuserDep,
params: Params = Depends(),
) -> Page[ChatOrigin]:
return paginate(
session,
select(Chat.origin, Chat.id).order_by(Chat.created_at.desc()),
params,
transformer=lambda items: [
) -> list[ChatOrigin]:
chat_origins = []
# chats = session.exec(select(Chat.origin, Chat.id).order_by(Chat.created_at.desc()))
for chat in chat_repo.list_chat_origins(session):
chat_origins.append(
ChatOrigin(
id=item.id,
origin=item.origin,
id=chat.id,
origin=chat.origin,
)
for item in items
],
)
)
return chat_origins


@router.get("/admin/stats/feedbacks/origins")
Expand Down
34 changes: 24 additions & 10 deletions backend/app/api/admin_routes/user.py
Original file line number Diff line number Diff line change
@@ -1,22 +1,36 @@
from fastapi import APIRouter, Depends
from fastapi_pagination import Params, Page
from fastapi_pagination.ext.sqlmodel import paginate
from fastapi_pagination import Params
from sqlmodel import select

from app.api.deps import SessionDep, CurrentSuperuserDep
from app.models import User

from app.api.admin_routes.models import (
UserDescriptor,
)
from fuzzywuzzy import process

router = APIRouter()


@router.get("/admin/users")
def list_users(
@router.get("/admin/users/search")
def search_users(
session: SessionDep,
user: CurrentSuperuserDep,
search: str | None = None,
params: Params = Depends(),
) -> Page[User]:
return paginate(
session,
select(User).order_by(User.id),
params=params,
)
) -> list[UserDescriptor]:
users = []
for user in session.exec(select(User).order_by(User.id)):
users.append(UserDescriptor(id=user.id, email=user.email))
# when search is empty, return all users
if not search:
return users
# when search is not empty, filter users by email
emails = [user.email for user in users]
matches = process.extract(search, emails, limit=len(emails))

threshold = 70
matched_emails = {match[0] for match in matches if match[1] >= threshold}

return [user for user in users if user.email in matched_emails]
5 changes: 5 additions & 0 deletions backend/app/repositories/chat.py
Original file line number Diff line number Diff line change
Expand Up @@ -242,5 +242,10 @@ def chat_trend_by_origin(
stats.sort(key=lambda x: x["date"])
return stats

def list_chat_origins(self, session: Session):
return session.exec(
select(Chat.origin, Chat.id).order_by(Chat.created_at.desc())
)


chat_repo = ChatRepo()
35 changes: 2 additions & 33 deletions backend/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -31,39 +31,8 @@ dependencies = [
"langfuse>=2.59.1",
"langchain-openai>=0.2.9",
"ragas>=0.2.6",
"deepeval>=0.21.73",
"click>=8.1.7",
"tenacity~=8.4.0",
"retry>=0.9.2",
"deepdiff>=7.0.1",
"colorama>=0.4.6",
"jinja2>=3.1.4",
"pyyaml>=6.0.1",
"playwright>=1.45.1",
"markdownify>=0.13.1",
"pypdf>=4.3.1",
"python-docx>=1.1.2",
"python-pptx>=1.0.2",
"openpyxl>=3.1.5",
"llama-index>=0.12.16",
"llama-index-llms-openai>=0.3.13",
"llama-index-llms-openai-like>=0.3.3",
"llama-index-llms-bedrock>=0.3.3",
"llama-index-llms-ollama>=0.5.0",
# 0.4.3: AttributeError: module 'google.generativeai.types' has no attribute 'RequestOptions'
"llama-index-llms-gemini==0.4.2",
"llama-index-embeddings-ollama>=0.5.0",
"llama-index-embeddings-jinaai>=0.4.0",
"llama-index-embeddings-cohere>=0.4.0",
"llama-index-embeddings-bedrock>=0.4.0",
"llama-index-postprocessor-jinaai-rerank>=0.3.0",
"llama-index-postprocessor-cohere-rerank>=0.3.0",
"llama-index-postprocessor-xinference-rerank>=0.2.0",
"llama-index-postprocessor-bedrock-rerank>=0.3.0",
"llama-index-llms-vertex>=0.4.2",
"socksio>=1.0.0",
"llama-index-llms-azure-openai>=0.3.0",
"llama-index-embeddings-azure-openai>=0.3.0",
"fuzzywuzzy>=0.18.0",
"levenshtein>=0.26.1",
]
readme = "README.md"
requires-python = ">= 3.8"
Expand Down
7 changes: 6 additions & 1 deletion backend/requirements-dev.lock
Original file line number Diff line number Diff line change
Expand Up @@ -170,6 +170,8 @@ fsspec==2023.10.0
# via datasets
# via huggingface-hub
# via llama-index-core
# via llama-index-legacy
fuzzywuzzy==0.18.0
google-ai-generativelanguage==0.6.4
# via google-generativeai
google-api-core==2.19.1
Expand Down Expand Up @@ -321,7 +323,8 @@ langsmith==0.1.143
# via langchain
# via langchain-community
# via langchain-core
llama-cloud==0.1.6
levenshtein==0.26.1
llama-cloud==0.0.15
# via llama-index-indices-managed-llama-cloud
llama-index==0.12.16
llama-index-agent-openai==0.4.1
Expand Down Expand Up @@ -633,6 +636,8 @@ pyyaml==6.0.1
# via uvicorn
ragas==0.2.6
# via deepeval
rapidfuzz==3.11.0
# via levenshtein
redis==5.0.5
regex==2024.5.15
# via dspy-ai
Expand Down
7 changes: 6 additions & 1 deletion backend/requirements.lock
Original file line number Diff line number Diff line change
Expand Up @@ -165,6 +165,8 @@ fsspec==2023.10.0
# via datasets
# via huggingface-hub
# via llama-index-core
# via llama-index-legacy
fuzzywuzzy==0.18.0
google-ai-generativelanguage==0.6.4
# via google-generativeai
google-api-core==2.19.1
Expand Down Expand Up @@ -314,7 +316,8 @@ langsmith==0.1.143
# via langchain
# via langchain-community
# via langchain-core
llama-cloud==0.1.6
levenshtein==0.26.1
llama-cloud==0.0.15
# via llama-index-indices-managed-llama-cloud
llama-index==0.12.16
llama-index-agent-openai==0.4.1
Expand Down Expand Up @@ -618,6 +621,8 @@ pyyaml==6.0.1
# via uvicorn
ragas==0.2.6
# via deepeval
rapidfuzz==3.11.0
# via levenshtein
redis==5.0.5
regex==2024.5.15
# via dspy-ai
Expand Down

0 comments on commit 136f9fa

Please sign in to comment.