Charles Azam commited on
Commit
7937220
·
1 Parent(s): 8ad59ed

feat: add fastAPI endpoint

Browse files
pyproject.toml CHANGED
@@ -23,6 +23,8 @@ dependencies = [
23
  "seaborn>=0.13.2",
24
  "sympy>=1.14.0",
25
  "scipy>=1.16.0",
 
 
26
  ]
27
 
28
  [project.scripts]
 
23
  "seaborn>=0.13.2",
24
  "sympy>=1.14.0",
25
  "scipy>=1.16.0",
26
+ "starlette>=0.47.1",
27
+ "fastapi>=0.116.1",
28
  ]
29
 
30
  [project.scripts]
src/deepengineer/backend/entry_point.py ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import anyio.to_thread
2
+ from fastapi import FastAPI, Request
3
+ from fastapi.responses import JSONResponse
4
+ from pydantic import BaseModel
5
+ from smolagents import CodeAgent, InferenceClientModel
6
+ from deepengineer.deepsearch.main_agent import main_search
7
+
8
+
9
+ app = FastAPI()
10
+
11
+
12
+ class AgentRequest(BaseModel):
13
+ task: str
14
+
15
+
16
+ @app.post("/deepsearch")
17
+ async def run_agent(request: AgentRequest):
18
+ task = request.task
19
+ # Run the agent synchronously in a background thread
20
+ result = await anyio.to_thread.run_sync(main_search, task)
21
+ return JSONResponse(content={"result": result})
uv.lock CHANGED
@@ -384,6 +384,7 @@ version = "0.1.0"
384
  source = { editable = "." }
385
  dependencies = [
386
  { name = "crawl4ai" },
 
387
  { name = "linkup-sdk" },
388
  { name = "litellm" },
389
  { name = "matplotlib" },
@@ -396,6 +397,7 @@ dependencies = [
396
  { name = "scipy" },
397
  { name = "seaborn" },
398
  { name = "smolagents" },
 
399
  { name = "sympy" },
400
  { name = "tavily-python" },
401
  ]
@@ -411,6 +413,7 @@ dev = [
411
  requires-dist = [
412
  { name = "black", marker = "extra == 'dev'", specifier = ">=24.0.0" },
413
  { name = "crawl4ai", specifier = ">=0.6.0" },
 
414
  { name = "linkup-sdk", specifier = ">=0.2.8" },
415
  { name = "litellm" },
416
  { name = "matplotlib", specifier = ">=3.10.3" },
@@ -425,6 +428,7 @@ requires-dist = [
425
  { name = "scipy", specifier = ">=1.16.0" },
426
  { name = "seaborn", specifier = ">=0.13.2" },
427
  { name = "smolagents", specifier = ">=1.19.0" },
 
428
  { name = "sympy", specifier = ">=1.14.0" },
429
  { name = "tavily-python", specifier = ">=0.7.9" },
430
  ]
@@ -474,6 +478,20 @@ wheels = [
474
  { url = "https://files.pythonhosted.org/packages/51/37/b3ea9cd5558ff4cb51957caca2193981c6b0ff30bd0d2630ac62505d99d0/fake_useragent-2.2.0-py3-none-any.whl", hash = "sha256:67f35ca4d847b0d298187443aaf020413746e56acd985a611908c73dba2daa24", size = 161695 },
475
  ]
476
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
477
  [[package]]
478
  name = "filelock"
479
  version = "3.18.0"
@@ -1763,6 +1781,18 @@ wheels = [
1763
  { url = "https://files.pythonhosted.org/packages/e7/9c/0e6afc12c269578be5c0c1c9f4b49a8d32770a080260c333ac04cc1c832d/soupsieve-2.7-py3-none-any.whl", hash = "sha256:6e60cc5c1ffaf1cebcc12e8188320b72071e922c2e897f737cadce79ad5d30c4", size = 36677 },
1764
  ]
1765
 
 
 
 
 
 
 
 
 
 
 
 
 
1766
  [[package]]
1767
  name = "sympy"
1768
  version = "1.14.0"
 
384
  source = { editable = "." }
385
  dependencies = [
386
  { name = "crawl4ai" },
387
+ { name = "fastapi" },
388
  { name = "linkup-sdk" },
389
  { name = "litellm" },
390
  { name = "matplotlib" },
 
397
  { name = "scipy" },
398
  { name = "seaborn" },
399
  { name = "smolagents" },
400
+ { name = "starlette" },
401
  { name = "sympy" },
402
  { name = "tavily-python" },
403
  ]
 
413
  requires-dist = [
414
  { name = "black", marker = "extra == 'dev'", specifier = ">=24.0.0" },
415
  { name = "crawl4ai", specifier = ">=0.6.0" },
416
+ { name = "fastapi", specifier = ">=0.116.1" },
417
  { name = "linkup-sdk", specifier = ">=0.2.8" },
418
  { name = "litellm" },
419
  { name = "matplotlib", specifier = ">=3.10.3" },
 
428
  { name = "scipy", specifier = ">=1.16.0" },
429
  { name = "seaborn", specifier = ">=0.13.2" },
430
  { name = "smolagents", specifier = ">=1.19.0" },
431
+ { name = "starlette", specifier = ">=0.47.1" },
432
  { name = "sympy", specifier = ">=1.14.0" },
433
  { name = "tavily-python", specifier = ">=0.7.9" },
434
  ]
 
478
  { url = "https://files.pythonhosted.org/packages/51/37/b3ea9cd5558ff4cb51957caca2193981c6b0ff30bd0d2630ac62505d99d0/fake_useragent-2.2.0-py3-none-any.whl", hash = "sha256:67f35ca4d847b0d298187443aaf020413746e56acd985a611908c73dba2daa24", size = 161695 },
479
  ]
480
 
481
+ [[package]]
482
+ name = "fastapi"
483
+ version = "0.116.1"
484
+ source = { registry = "https://pypi.org/simple" }
485
+ dependencies = [
486
+ { name = "pydantic" },
487
+ { name = "starlette" },
488
+ { name = "typing-extensions" },
489
+ ]
490
+ sdist = { url = "https://files.pythonhosted.org/packages/78/d7/6c8b3bfe33eeffa208183ec037fee0cce9f7f024089ab1c5d12ef04bd27c/fastapi-0.116.1.tar.gz", hash = "sha256:ed52cbf946abfd70c5a0dccb24673f0670deeb517a88b3544d03c2a6bf283143", size = 296485 }
491
+ wheels = [
492
+ { url = "https://files.pythonhosted.org/packages/e5/47/d63c60f59a59467fda0f93f46335c9d18526d7071f025cb5b89d5353ea42/fastapi-0.116.1-py3-none-any.whl", hash = "sha256:c46ac7c312df840f0c9e220f7964bada936781bc4e2e6eb71f1c4d7553786565", size = 95631 },
493
+ ]
494
+
495
  [[package]]
496
  name = "filelock"
497
  version = "3.18.0"
 
1781
  { url = "https://files.pythonhosted.org/packages/e7/9c/0e6afc12c269578be5c0c1c9f4b49a8d32770a080260c333ac04cc1c832d/soupsieve-2.7-py3-none-any.whl", hash = "sha256:6e60cc5c1ffaf1cebcc12e8188320b72071e922c2e897f737cadce79ad5d30c4", size = 36677 },
1782
  ]
1783
 
1784
+ [[package]]
1785
+ name = "starlette"
1786
+ version = "0.47.1"
1787
+ source = { registry = "https://pypi.org/simple" }
1788
+ dependencies = [
1789
+ { name = "anyio" },
1790
+ ]
1791
+ sdist = { url = "https://files.pythonhosted.org/packages/0a/69/662169fdb92fb96ec3eaee218cf540a629d629c86d7993d9651226a6789b/starlette-0.47.1.tar.gz", hash = "sha256:aef012dd2b6be325ffa16698f9dc533614fb1cebd593a906b90dc1025529a79b", size = 2583072 }
1792
+ wheels = [
1793
+ { url = "https://files.pythonhosted.org/packages/82/95/38ef0cd7fa11eaba6a99b3c4f5ac948d8bc6ff199aabd327a29cc000840c/starlette-0.47.1-py3-none-any.whl", hash = "sha256:5e11c9f5c7c3f24959edbf2dffdc01bba860228acf657129467d8a7468591527", size = 72747 },
1794
+ ]
1795
+
1796
  [[package]]
1797
  name = "sympy"
1798
  version = "1.14.0"