diff --git a/server/fastapi_server.py b/server/fastapi_server.py index 39dea00..7b08263 100644 --- a/server/fastapi_server.py +++ b/server/fastapi_server.py @@ -44,7 +44,7 @@ create_investor_agent_toolkit, create_analytics_agent_toolkit, ) -from subnet.subnet_methods import subnet_evaluation +from subnet.subnet_methods import subnet_evaluation, subnet_query from subnet.api_types import QuantQuery, QuantResponse from langchain_openai import ChatOpenAI from server.invitecode import InviteCodeManager @@ -448,6 +448,57 @@ async def evaluate_subnet_response( logging.error(f"Traceback: {traceback.format_exc()}") raise HTTPException(status_code=500, detail="Internal server error") + @app.post("/api/subnet/query") + async def subnet_query_endpoint( + request: Request, + ): + """ + Handle subnet queries without authentication. + + Expected request body: + { + "query": "string", + "userID": "string", + "metadata": {} + } + + Returns: + { + "response": "string", + "signature": "bytes", + "proofs": [], + "metadata": {} + } + """ + try: + request_data = await request.json() + + # Validate required fields + if "query" not in request_data: + raise HTTPException( + status_code=400, + detail="Query is required" + ) + + # Parse the request data into QuantQuery object + quant_query = QuantQuery(**request_data) + + # Call the actual subnet query function + quant_response = await asyncio.to_thread(subnet_query, quant_query) + + if quant_response is None: + raise HTTPException(status_code=500, detail="Subnet query failed") + + return quant_response.model_dump() + + except ValidationError as e: + logging.error(f"Validation error in subnet query: {e}") + raise HTTPException(status_code=400, detail=str(e)) + except Exception as e: + logging.error(f"Error in subnet query: {e}") + logging.error(f"Traceback: {traceback.format_exc()}") + raise HTTPException(status_code=500, detail="Internal server error") + # @app.post("/api/sentient/assist") async def sentient_assist( request: Request, diff --git a/subnet/subnet_methods.py b/subnet/subnet_methods.py index 75e3e0b..587d175 100644 --- a/subnet/subnet_methods.py +++ b/subnet/subnet_methods.py @@ -175,7 +175,7 @@ def subnet_query(quant_query: QuantQuery) -> QuantResponse: } # Set the endpoint - endpoint = "http://127.0.0.1:5000/api/agent/run" + endpoint = "http://127.0.0.1:5000/api/v2/agent/run" # Format the message message = {"type": "user", "message": quant_query.query}