Spaces:
Runtime error
Runtime error
Charles Azam
commited on
Commit
·
7937220
1
Parent(s):
8ad59ed
feat: add fastAPI endpoint
Browse files- pyproject.toml +2 -0
- src/deepengineer/backend/entry_point.py +21 -0
- uv.lock +30 -0
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"
|