Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion backend/app/core/config.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import os
from pydantic import BaseSettings
from pydantic_settings import BaseSettings


class Settings(BaseSettings):
Expand Down
19 changes: 11 additions & 8 deletions backend/app/services/embeddings.py
Original file line number Diff line number Diff line change
@@ -1,17 +1,20 @@
import google.generativeai as genai
from google import genai
from typing import List
from app.core.config import settings

genai.configure(api_key=settings.GEMINI_API_KEY)


def embed_texts(texts: List[str]) -> List[List[float]]:
client = genai.Client(api_key=settings.GEMINI_API_KEY)
embeddings = []

for text in texts:
result = genai.embed_content(
model="models/embedding-001",
content=text,
task_type="retrieval_document"
result = client.models.embed_content(
model="text-embedding-004",
contents=text,
)
embeddings.append(result["embedding"])
if hasattr(result, 'embeddings') and result.embeddings:
embeddings.append(result.embeddings[0].values)
elif hasattr(result, 'embedding'):
embeddings.append(result.embedding.values)

return embeddings
13 changes: 7 additions & 6 deletions backend/app/services/generator.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
import google.generativeai as genai
from google import genai
from app.core.config import settings

genai.configure(api_key=settings.GEMINI_API_KEY)


def generate_answer(context: str, question: str) -> str:
prompt = f"""
Expand All @@ -17,6 +15,9 @@ def generate_answer(context: str, question: str) -> str:
{question}
"""

model = genai.GenerativeModel("gemini-1.5-flash")
response = model.generate_content(prompt)
return response.text.strip()
client = genai.Client(api_key=settings.GEMINI_API_KEY)
response = client.models.generate_content(
model="gemini-2.5-flash",
contents=prompt
)
return response.text
3 changes: 2 additions & 1 deletion backend/app/services/loader.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
from pathlib import Path
from PyPDF2 import PdfReader
from pypdf import PdfReader



def load_text_from_pdf(file_path: Path) -> str:
Expand Down
16 changes: 6 additions & 10 deletions backend/requirements.txt
Original file line number Diff line number Diff line change
@@ -1,18 +1,14 @@
fastapi>=0.109.0
uvicorn>=0.27.0

pydantic>=2.6.0
pydantic-settings>=2.1.0
python-dotenv>=1.0.1
langchain>=0.1.0
langchain-openai>=0.0.5
langchain-google-genai>=0.0.5
faiss-cpu>=1.7.4

python-multipart>=0.0.7
aiofiles>=23.2.1
httpx>=0.26.0
beautifulsoup4>=4.12.3
mypy>=1.8.0
black>=24.1.0
isort>=5.13.2
flake8>=7.0.0
pytest>=8.0.0
pypdf>=4.0.0

faiss-cpu>=1.7.4
google-genai>=1.0.0
Loading