CodeXDevloper commited on
Commit
dbacbf8
·
verified ·
1 Parent(s): 0d7facc

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +25 -8
app.py CHANGED
@@ -1,6 +1,7 @@
1
  from fastapi import FastAPI, Query
2
  from fastapi.middleware.cors import CORSMiddleware
3
  from datasets import load_dataset
 
4
  import os
5
 
6
  os.environ["HF_HOME"] = "/tmp/hf"
@@ -16,6 +17,13 @@ app.add_middleware(
16
 
17
  DATASET = "CodeXDevloper/MergedTgDataset"
18
 
 
 
 
 
 
 
 
19
  @app.get("/")
20
  def root():
21
  return {
@@ -27,17 +35,25 @@ def root():
27
  @app.get("/search")
28
  def search_uid(
29
  uid: str = Query(..., description="Telegram UID"),
30
- offset: int = Query(0, ge=0, description="Kahan se start karna hai (default 0)")
31
  ):
32
  """
33
- Poore dataset mein UID dhoondho.
34
- - offset=0 se start karo
35
- - Agar nahi mila toh next_offset milega
36
- - Woh next_offset daal ke dobara call karo
37
- - Aise karte karte poora dataset cover hoga
38
  """
39
  try:
40
- ds = load_dataset(DATASET, split="train", streaming=True)
 
 
 
 
 
 
 
 
 
 
 
 
41
 
42
  # Offset tak skip karo
43
  iterator = iter(ds)
@@ -56,7 +72,7 @@ def search_uid(
56
  "next_offset": None
57
  }
58
 
59
- # Ab 5 lakh rows scan karo (HF Space 30 second timeout ke liye safe)
60
  scanned = 0
61
  max_scan = 500000
62
 
@@ -92,6 +108,7 @@ def search_uid(
92
  "offset": offset,
93
  "scanned": scanned,
94
  "next_offset": offset + scanned,
 
95
  "message": f"Is chunk mein nahi mila. Ab offset={offset + scanned} try karo."
96
  }
97
 
 
1
  from fastapi import FastAPI, Query
2
  from fastapi.middleware.cors import CORSMiddleware
3
  from datasets import load_dataset
4
+ from huggingface_hub import HfApi
5
  import os
6
 
7
  os.environ["HF_HOME"] = "/tmp/hf"
 
17
 
18
  DATASET = "CodeXDevloper/MergedTgDataset"
19
 
20
+ def get_all_parquet_files():
21
+ """Saari parquet files nikalo - saare folders se"""
22
+ api = HfApi()
23
+ files = api.list_repo_files(DATASET, repo_type="dataset")
24
+ parquet_files = [f for f in files if f.endswith(".parquet")]
25
+ return parquet_files
26
+
27
  @app.get("/")
28
  def root():
29
  return {
 
35
  @app.get("/search")
36
  def search_uid(
37
  uid: str = Query(..., description="Telegram UID"),
38
+ offset: int = Query(0, ge=0, description="Kahan se start karna hai")
39
  ):
40
  """
41
+ POORE dataset mein UID dhoondho - saare folders se
 
 
 
 
42
  """
43
  try:
44
+ # Saari parquet files nikalo (saare folders)
45
+ parquet_files = get_all_parquet_files()
46
+
47
+ if not parquet_files:
48
+ return {"error": "Koi parquet file nahi mili"}
49
+
50
+ # Saari files ko load karo (streaming mode)
51
+ ds = load_dataset(
52
+ DATASET,
53
+ data_files=parquet_files,
54
+ split="train",
55
+ streaming=True
56
+ )
57
 
58
  # Offset tak skip karo
59
  iterator = iter(ds)
 
72
  "next_offset": None
73
  }
74
 
75
+ # Ab 5 lakh rows scan karo
76
  scanned = 0
77
  max_scan = 500000
78
 
 
108
  "offset": offset,
109
  "scanned": scanned,
110
  "next_offset": offset + scanned,
111
+ "total_files": len(parquet_files),
112
  "message": f"Is chunk mein nahi mila. Ab offset={offset + scanned} try karo."
113
  }
114