mindchain commited on
Commit
c6540a4
·
verified ·
1 Parent(s): 4c0054c

Upload app.py with huggingface_hub

Browse files
Files changed (1) hide show
  1. app.py +24 -9
app.py CHANGED
@@ -3,6 +3,8 @@ from contextlib import asynccontextmanager
3
  from fastapi import FastAPI, HTTPException
4
  from fastapi.middleware.cors import CORSMiddleware
5
  from typing import Any
 
 
6
 
7
  from models import (
8
  GenerateRequest, GenerateResponse,
@@ -25,7 +27,8 @@ data_designer = None
25
  async def lifespan(app: FastAPI):
26
  global data_designer
27
  from data_designer.interface import DataDesigner
28
- data_designer = DataDesigner()
 
29
  yield
30
 
31
 
@@ -161,17 +164,20 @@ async def health():
161
  @app.post("/generate", response_model=GenerateResponse)
162
  async def generate(request: GenerateRequest):
163
  """
164
- Generate synthetic data.
165
  """
166
  try:
167
  config_builder = build_config(request)
168
 
169
- result = data_designer.generate(
 
170
  config_builder=config_builder,
171
  num_records=request.num_records,
 
172
  )
173
 
174
- df = result.to_pandas()
 
175
  data = df.to_dict(orient="records")
176
 
177
  return GenerateResponse(
@@ -181,31 +187,40 @@ async def generate(request: GenerateRequest):
181
  )
182
 
183
  except Exception as e:
 
184
  return GenerateResponse(
185
  success=False,
186
- error=str(e)
187
  )
188
 
189
 
190
  @app.post("/preview", response_model=PreviewResponse)
191
  async def preview(request: PreviewRequest):
192
  """
193
- Preview a single record without full generation.
194
  """
195
  try:
196
  config_builder = build_config(request)
197
 
198
- preview_result = data_designer.preview(config_builder=config_builder)
 
 
 
 
 
 
 
199
 
200
  return PreviewResponse(
201
  success=True,
202
- sample=preview_result.sample_record
203
  )
204
 
205
  except Exception as e:
 
206
  return PreviewResponse(
207
  success=False,
208
- error=str(e)
209
  )
210
 
211
 
 
3
  from fastapi import FastAPI, HTTPException
4
  from fastapi.middleware.cors import CORSMiddleware
5
  from typing import Any
6
+ import tempfile
7
+ from pathlib import Path
8
 
9
  from models import (
10
  GenerateRequest, GenerateResponse,
 
27
  async def lifespan(app: FastAPI):
28
  global data_designer
29
  from data_designer.interface import DataDesigner
30
+ # Use temp directory for artifacts
31
+ data_designer = DataDesigner(artifact_path=tempfile.gettempdir())
32
  yield
33
 
34
 
 
164
  @app.post("/generate", response_model=GenerateResponse)
165
  async def generate(request: GenerateRequest):
166
  """
167
+ Generate synthetic data using DataDesigner.create().
168
  """
169
  try:
170
  config_builder = build_config(request)
171
 
172
+ # Use create() method - returns DatasetCreationResults
173
+ result = data_designer.create(
174
  config_builder=config_builder,
175
  num_records=request.num_records,
176
+ dataset_name="api-dataset"
177
  )
178
 
179
+ # Get DataFrame from results
180
+ df = result.load_dataset()
181
  data = df.to_dict(orient="records")
182
 
183
  return GenerateResponse(
 
187
  )
188
 
189
  except Exception as e:
190
+ import traceback
191
  return GenerateResponse(
192
  success=False,
193
+ error=f"{str(e)}\n{traceback.format_exc()}"
194
  )
195
 
196
 
197
  @app.post("/preview", response_model=PreviewResponse)
198
  async def preview(request: PreviewRequest):
199
  """
200
+ Preview a single record using DataDesigner.preview().
201
  """
202
  try:
203
  config_builder = build_config(request)
204
 
205
+ # Use preview() method - returns PreviewResults
206
+ preview_result = data_designer.preview(
207
+ config_builder=config_builder,
208
+ num_records=1
209
+ )
210
+
211
+ # Get sample record
212
+ sample = preview_result.dataset.to_dict(orient="records")[0] if len(preview_result.dataset) > 0 else {}
213
 
214
  return PreviewResponse(
215
  success=True,
216
+ sample=sample
217
  )
218
 
219
  except Exception as e:
220
+ import traceback
221
  return PreviewResponse(
222
  success=False,
223
+ error=f"{str(e)}\n{traceback.format_exc()}"
224
  )
225
 
226