bioflow / openapi_temp.json
yassinekolsi
feat: enhance visualization with mock data fallback and update readme
cd3cb84
Invalid JSON: Unexpected token '�', "��{"op"... is not valid JSON
��{"openapi":"3.1.0","info":{"title":"BioFlow API","description":"AI-Powered Drug Discovery Platform API","version":"2.0.0"},"paths":{"/api/dp-search":{"post":{"tags":["deeppurpose"],"summary":"Search Vectors","description":"Search for similar drugs/targets using DeepPurpose embeddings.\n\nNote: Use /api/search for general enhanced search with MMR diversification.\nThis endpoint is specifically for DeepPurpose model-based vector search.","operationId":"search_vectors_api_dp_search_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/points":{"get":{"summary":"Get Points","description":"Get points for visualization.","operationId":"get_points_api_points_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":500,"title":"Limit"}},{"name":"view","in":"query","required":false,"schema":{"type":"string","default":"combined","title":"View"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/stats":{"get":{"summary":"Get Stats","description":"Get system statistics for the data page.","operationId":"get_stats_api_stats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/":{"get":{"summary":"Root","description":"Health check endpoint.","operationId":"root__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthResponse"}}}}}}},"/health":{"get":{"summary":"Health","description":"Health check endpoint.","operationId":"health_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthResponse"}}}}}}},"/api/discovery":{"post":{"summary":"Start Discovery","description":"Start a discovery pipeline (async).","operationId":"start_discovery_api_discovery_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DiscoveryRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/discovery/{job_id}":{"get":{"summary":"Get Discovery Status","description":"Get status of a discovery job.","operationId":"get_discovery_status_api_discovery__job_id__get","parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/predict":{"post":{"summary":"Predict Dti","description":"Predict drug-target interaction.\nUses DeepPurpose under the hood.","operationId":"predict_dti_api_predict_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PredictRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/search":{"post":{"summary":"Enhanced Search","description":"Enhanced semantic search with MMR diversification and evidence linking.\n\nFeatures:\n- Maximal Marginal Relevance (MMR) for diverse results\n- Evidence links to source databases (PubMed, UniProt, ChEMBL)\n- Citations and source tracking\n- Filtered search by modality, source, etc.\n\nAccepts both old format (type, limit) and new format (modality, top_k).","operationId":"enhanced_search_api_search_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Request"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/search/hybrid":{"post":{"summary":"Hybrid Search","description":"Hybrid search combining vector similarity with keyword matching.\n\nUseful when you want results that are both semantically similar\nAND contain specific keywords.","operationId":"hybrid_search_api_search_hybrid_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HybridSearchRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/ingest":{"post":{"summary":"Ingest Data","description":"Ingest data into vector database.","operationId":"ingest_data_api_ingest_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IngestRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/molecules":{"get":{"summary":"List Molecules","description":"List molecules in the database.","operationId":"list_molecules_api_molecules_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":20,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/proteins":{"get":{"summary":"List Proteins","description":"List proteins in the database.","operationId":"list_proteins_api_proteins_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":20,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/explorer/embeddings":{"get":{"summary":"Get Embeddings","description":"Get 2D projections of embeddings for visualization.","operationId":"get_embeddings_api_explorer_embeddings_get","parameters":[{"name":"dataset","in":"query","required":false,"schema":{"type":"string","default":"default","title":"Dataset"}},{"name":"method","in":"query","required":false,"schema":{"type":"string","default":"umap","title":"Method"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/encode":{"post":{"summary":"Encode Content","description":"Encode content to embedding vector.","operationId":"encode_content_api_encode_post","parameters":[{"name":"content","in":"query","required":true,"schema":{"type":"string","title":"Content"}},{"name":"modality","in":"query","required":false,"schema":{"type":"string","default":"auto","title":"Modality"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/similarity":{"get":{"summary":"Compute Similarity","description":"Compute similarity between query and comma-separated candidates.","operationId":"compute_similarity_api_similarity_get","parameters":[{"name":"query","in":"query","required":true,"schema":{"type":"string","title":"Query"}},{"name":"candidates","in":"query","required":true,"schema":{"type":"string","title":"Candidates"}},{"name":"modality","in":"query","required":false,"schema":{"type":"string","default":"molecule","title":"Modality"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/collections":{"get":{"summary":"List Collections","description":"List all vector collections.","operationId":"list_collections_api_collections_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/agents/generate":{"post":{"summary":"Agent Generate","description":"Generate molecules from text prompt or seed SMILES.\n\nModes:\n- text: Generate from natural language description\n- mutate: Create variants of a seed molecule\n- scaffold: Generate around a core scaffold","operationId":"agent_generate_api_agents_generate_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/agents/validate":{"post":{"summary":"Agent Validate","description":"Validate molecules for ADMET and drug-likeness properties.\n\nReturns validation scores, property values, and structural alerts.","operationId":"agent_validate_api_agents_validate_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidateRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/agents/rank":{"post":{"summary":"Agent Rank","description":"Rank candidates based on multiple criteria.\n\nCombines validation scores, confidence, and other metrics.","operationId":"agent_rank_api_agents_rank_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RankRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/agents/workflow":{"post":{"summary":"Run Discovery Workflow","description":"Run full discovery workflow: Generate ��� Validate ��� Rank.\n\nReturns top candidates with all validation and ranking metadata.","operationId":"run_discovery_workflow_api_agents_workflow_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"DiscoveryRequest":{"properties":{"query":{"type":"string","title":"Query","description":"SMILES, FASTA, or natural language query"},"search_type":{"type":"string","title":"Search Type","description":"similarity | binding | properties","default":"similarity"},"database":{"type":"string","title":"Database","description":"Target database","default":"all"},"limit":{"type":"integer","maximum":100.0,"minimum":1.0,"title":"Limit","default":10}},"type":"object","required":["query"],"title":"DiscoveryRequest","description":"Request for drug discovery pipeline."},"GenerateRequest":{"properties":{"prompt":{"type":"string","title":"Prompt","description":"Text description of desired molecule"},"mode":{"type":"string","title":"Mode","description":"Generation mode: text, mutate, scaffold","default":"text"},"smiles":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Smiles","description":"Seed SMILES for mutate/scaffold mode"},"num_samples":{"type":"integer","maximum":50.0,"minimum":1.0,"title":"Num Samples","description":"Number of molecules to generate","default":5}},"type":"object","required":["prompt"],"title":"GenerateRequest","description":"Request for molecule generation."},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"HealthResponse":{"properties":{"status":{"type":"string","title":"Status"},"version":{"type":"string","title":"Version"},"timestamp":{"type":"string","title":"Timestamp"}},"type":"object","required":["status","version","timestamp"],"title":"HealthResponse","description":"Health check response."},"HybridSearchRequest":{"properties":{"query":{"type":"string","title":"Query","description":"Vector search query"},"keywords":{"items":{"type":"string"},"type":"array","title":"Keywords","description":"Keywords to match"},"modality":{"type":"string","title":"Modality","default":"text"},"collection":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Collection"},"top_k":{"type":"integer","maximum":100.0,"minimum":1.0,"title":"Top K","default":20},"vector_weight":{"type":"number","maximum":1.0,"minimum":0.0,"title":"Vector Weight","default":0.7}},"type":"object","required":["query","keywords"],"title":"HybridSearchRequest","description":"Request for hybrid vector + keyword search."},"IngestRequest":{"properties":{"content":{"type":"string","title":"Content"},"modality":{"type":"string","title":"Modality","description":"smiles | protein | text","default":"smiles"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["content"],"title":"IngestRequest","description":"Request to ingest data into vector DB."},"PredictRequest":{"properties":{"drug_smiles":{"type":"string","title":"Drug Smiles","description":"SMILES string of drug"},"target_sequence":{"type":"string","title":"Target Sequence","description":"Protein sequence (FASTA)"}},"type":"object","required":["drug_smiles","target_sequence"],"title":"PredictRequest","description":"Request for DTI prediction."},"RankRequest":{"properties":{"candidates":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Candidates","description":"Candidates with scores"},"weights":{"anyOf":[{"additionalProperties":{"type":"number"},"type":"object"},{"type":"null"}],"title":"Weights","description":"Custom score weights"},"top_k":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Top K","description":"Return top K candidates"}},"type":"object","required":["candidates"],"title":"RankRequest","description":"Request for candidate ranking."},"SearchRequest":{"properties":{"query":{"type":"string","title":"Query"},"type":{"type":"string","title":"Type"},"limit":{"type":"integer","title":"Limit","default":20}},"type":"object","required":["query","type"],"title":"SearchRequest"},"ValidateRequest":{"properties":{"smiles":{"items":{"type":"string"},"type":"array","title":"Smiles","description":"List of SMILES to validate"},"check_lipinski":{"type":"boolean","title":"Check Lipinski","description":"Check Lipinski Rule of 5","default":true},"check_admet":{"type":"boolean","title":"Check Admet","description":"Check ADMET properties","default":true},"check_alerts":{"type":"boolean","title":"Check Alerts","description":"Check structural alerts","default":true}},"type":"object","required":["smiles"],"title":"ValidateRequest","description":"Request for molecule validation."},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"WorkflowRequest":{"properties":{"query":{"type":"string","title":"Query","description":"Text description of desired molecule"},"num_candidates":{"type":"integer","maximum":50.0,"minimum":1.0,"title":"Num Candidates","description":"Number of candidates to generate","default":10},"top_k":{"type":"integer","maximum":20.0,"minimum":1.0,"title":"Top K","description":"Number of top candidates to return","default":5}},"type":"object","required":["query"],"title":"WorkflowRequest","description":"Request for full discovery workflow."}}}}