Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
53 changes: 52 additions & 1 deletion server/fastapi_server.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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,
Expand Down
2 changes: 1 addition & 1 deletion subnet/subnet_methods.py
Original file line number Diff line number Diff line change
Expand Up @@ -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}
Expand Down