{"info":{"_postman_id":"934675cd-ccfd-48d4-ade3-05585bf4939d","name":"Okahu Personal Cloud APIs","description":"<html><head></head><body><p>Observe your LLM-based apps in the cloud with <a href=\"https://www.okahu.ai\">Okahu</a> to quickly understand performance of your app and identify to resolve issues by exploring traces and prompts at scale.</p>\n<img src=\"https://content.pstmn.io/6f423af7-b61f-4524-a315-115551505aca/b2thaHUtb2JzZXJ2YWJpbGl0eS1mb3ItZ2VuYWktYXBwcy5wbmc=\">\n\n<h3 id=\"example\">Example</h3>\n<p>Imagine an AI chatbot that answers questions about coffee like \"what's an americano?\" using a large language model.</p>\n<p>This chatbot may use an LLM served by any number of cloud services used for model infrence such as OpenAI, Azure OpenAI, AWS Bedrock, Nvidia Triton or more. This chatbot may be coded using any number of GenAI app dev frameworks such as Langchain, Llamaindex, Haystack or more to add additional logic, quality improvements or customizations such as result augmented generation. This chatbot code may be served up by any number of cloud services such as kubernetes, Azure functions, AWS Lambda or more.</p>\n<img src=\"https://content.pstmn.io/322f19a0-0f49-46c7-b1cf-1b654ef92584/b2thaHUtaW5zaWdodHMtY2hhdGJvdC5qcGc=\">\n\n<p><a href=\"https://www.okahu.ai\">Okahu</a> captures the traces from GenAI app code and combines with metrics from cloud services serving app code and model inference to provide insights such as performance, reliability, quality &amp; cost - without coding or custom analytics.</p>\n<p>You can connect trace issued surfaced through these insights to their root cause quickly by exploring the traces or exploring prompts. Okahu platform manages the stitching, analysis, storage and serving of the traces, prompts and metrics in the cloud so you don't have to.</p>\n<ul>\n<li><p>Explore <a href=\"https://www.postman.com/okahuai/okahu-observability-for-genai-apps/request/iqonrdz/explore-traces-for-root-cause-analysis?action=share&amp;source=copy-link&amp;creator=32527196&amp;ctx=documentation\">traces for root cause analysis</a></p>\n</li>\n<li><p>Explore <a href=\"https://www.postman.com/okahuai/okahu-observability-for-genai-apps/request/3dne98s/explore-prompts-to-measure-quality?action=share&amp;source=copy-link&amp;creator=32527196&amp;ctx=documentation\">prompts to measure response quality</a></p>\n</li>\n</ul>\n<p>Coming soon is the Okahu Organization Cloud account with enterprises features such as Bring Your Own Prometheus, OpenTelemetry compliant store, collaborative incidence management and more.</p>\n</body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[],"owner":"32502684","collectionId":"934675cd-ccfd-48d4-ade3-05585bf4939d","publishedId":"2sAXjF9ahW","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"publishDate":"2024-10-01T00:08:57.000Z"},"item":[{"name":"Start here","item":[{"name":"Validate API Key with get Okahu tenant","id":"e4f295d8-7990-4fcb-86c0-14a6f92ffbec","protocolProfileBehavior":{"disableBodyPruning":true,"disabledSystemHeaders":{"connection":true,"accept-encoding":true,"accept":true,"user-agent":true,"host":true}},"request":{"auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{vault:prod-pvatokahu-apikey}}"}]},"isInherited":false},"method":"GET","header":[],"body":{"mode":"urlencoded","urlencoded":[]},"url":"https://api.okahu.co/api/v1/tenant","description":"<p>Lookup the Okahu tenant id using an API key.</p>\n<p>An Okahu Cloud tenant is used as a scoping boundary to isolate observations and configurations related to an organization's AI app &amp; infrastructure. Okahu Personal Cloud accounts are intended for use by a single user who are also designated as the owner of the Okahu tenant.</p>\n<p>Each Okahu Personal Cloud comes with a free cpacity of 100Mb of storage for telemetry data (e.g. trace, prompts, metrics) and 1000 APIs per month. Coming soon is the ability to add additional capacity in personal accounts.</p>\n<p>Coming soon are Okahu Organizational accounts that support multiple users per tenant and other enterprise features.</p>\n","urlObject":{"protocol":"https","path":["api","v1","tenant"],"host":["api","okahu","co"],"query":[],"variable":[]}},"response":[],"_postman_id":"e4f295d8-7990-4fcb-86c0-14a6f92ffbec"}],"id":"d2ebb88b-5b7e-4058-ac01-31184ee21bf0","description":"<ol>\n<li><p>Get your Okahu Personal Cloud account <a href=\"https://portal.okahu.co/api/auth/login\">here</a>.</p>\n</li>\n<li><p>Generate an API key to interact with Okahu programatically.</p>\n</li>\n<li><p>Configure Authorization at the collection level in Postman to use API Key.</p>\n</li>\n<li><p>Run the <a href=\"https://www.postman.com/okahuai/okahu-observability-for-genai-apps/request/f39uebt/get-okahu-tenant?action=share&amp;source=copy-link&amp;creator=32527196&amp;ctx=documentation\">get tenant</a> and compare with tenant_id in response to validate.</p>\n</li>\n</ol>\n<img src=\"https://content.pstmn.io/66954a40-afec-4666-ad84-3eb27e932222/b2thaHUtcGVyc29uYWwtZ2VuZXJhdGUtQVBJLWtleS5qcGc=\" alt />","_postman_id":"d2ebb88b-5b7e-4058-ac01-31184ee21bf0","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{vault:prod-pvatokahu-apikey}}"}]},"isInherited":true,"source":{"_postman_id":"934675cd-ccfd-48d4-ade3-05585bf4939d","id":"934675cd-ccfd-48d4-ade3-05585bf4939d","name":"Okahu Personal Cloud APIs","type":"collection"}}},{"name":"Configure","item":[{"name":"Delete my Okahu tenant","id":"3ea0f8e1-81f7-4704-b7b4-726432db9c71","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"DELETE","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"https://management.okahu.co/api/v1/tenants/{{tenantId}}","description":"<p>Use this API to add a new application to be observed by Okahu and configure the SLOs, budgets and more. You can link an app with a previously discovered workflow component to start the authomated stitching and analysis of the traces from that workflow against the SLOs, budget or quality targets specified here.</p>\n<p>Use <a href=\"https://portal.okahu.co/login\">Okahu portal</a> to interactively configure apps, SLOs, budgets and more.</p>\n","urlObject":{"protocol":"https","path":["api","v1","tenants","{{tenantId}}"],"host":["management","okahu","co"],"query":[],"variable":[]}},"response":[],"_postman_id":"3ea0f8e1-81f7-4704-b7b4-726432db9c71"},{"name":"Add a component to observe","id":"9a5a744f-2cd2-4a7e-9f67-038e04a846d3","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\n    \"display_name\": \"{{descriptive name for the component}}\",\n    \"kind\": \"{{infra or logical}}\",\n    \"type\": \"{{type of components. see full list in documentation.}}\",\n    \"properties\": {\n        \"component_url\": \"{{inference endpoint URL if type is inference.triton}}\",\n        \"metric_target_hostname\": \"{{metrics server end point if inference.triton}}\"\n    }\n}","options":{"raw":{"language":"json"}}},"url":"https://api.okahu.co/api/v1/components/{{componentname}}","description":"<p>Register a new component manually to observe by Okahu.</p>\n<p>If you have instrumented your app for automated tracing with okahu-observability agent, all components will be discovered and added automatically by the agent. See Okahu <a href=\"https://docs.okahu.ai/docs/How_to_instrument.html\">GenAI app instrumentation</a> guide and check out the <a href=\"https://www.postman.com/okahuai/okahu-observability-for-genai-apps/request/wumhacn/discover-new-components?action=share&amp;source=copy-link&amp;creator=32527196&amp;ctx=documentation\">discover new components</a> API.</p>\n<p>You can also use the add a component API to use Okahu Cloud as the system of record for documenting organizational knowledge about how your GenAI app is built by manually augmenting information that is otherwise not discoverable automatically.</p>\n","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{vault:prod-pvatokahu-apikey}}"}]},"isInherited":true,"source":{"_postman_id":"934675cd-ccfd-48d4-ade3-05585bf4939d","id":"934675cd-ccfd-48d4-ade3-05585bf4939d","name":"Okahu Personal Cloud APIs","type":"collection"}},"urlObject":{"protocol":"https","path":["api","v1","components","{{componentname}}"],"host":["api","okahu","co"],"query":[],"variable":[]}},"response":[],"_postman_id":"9a5a744f-2cd2-4a7e-9f67-038e04a846d3"},{"name":"Add an app","id":"3228fccf-27f4-47fc-8c49-6ade568bb86f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"display_name\": \"test <b>&lt;b&gt;test&lt;/b&gt; fsdfsdfs dfsdfsdf fsdf sdfds fgfdsg dfgdf gdfg dfgdfgd fgdfgdfgdfgdfgdgdfgdf sdfdsf \",\n    \"owner\": \"{{owner-email}}\",\n    \"description\": \"\",\n    \"sla\": \"10 seconds\",\n    \"components\": []\n}","options":{"raw":{"language":"json"}}},"url":"https://api.okahu.co/api/v1/apps/{{appname}}","description":"<p>Register a new component manually to observe by Okahu.</p>\n<p>If you have instrumented your app for automated tracing with okahu-observability agent, all components will be discovered and added automatically by the agent. See Okahu <a href=\"https://docs.okahu.ai/docs/How_to_instrument.html\">GenAI app instrumentation</a> guide and check out the <a href=\"https://www.postman.com/okahuai/okahu-observability-for-genai-apps/request/wumhacn/discover-new-components?action=share&amp;source=copy-link&amp;creator=32527196&amp;ctx=documentation\">discover new components</a> API.</p>\n<p>You can also use the add a component API to use Okahu Cloud as the system of record for documenting organizational knowledge about how your GenAI app is built by manually augmenting information that is otherwise not discoverable automatically.</p>\n","urlObject":{"protocol":"https","path":["api","v1","apps","{{appname}}"],"host":["api","okahu","co"],"query":[],"variable":[]}},"response":[],"_postman_id":"3228fccf-27f4-47fc-8c49-6ade568bb86f"},{"name":"Add an app to organize observations","id":"39cffc62-a6e5-4a8c-bebd-93b455064e77","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[],"body":{"mode":"raw","raw":" {\r\n    \"display_name\": \"{{display name}}\",\r\n    \"description\": \"{{ app description}}\",\r\n    \"sla\": \"x.y seconds\",\r\n    \"components\" : [\r\n        { \"component_name\": \"{{component_name}}\" }\r\n    ]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://api.okahu.co/api/v1/apps/{{appname}}","description":"<p>Use this API to add a new application to be observed by Okahu and configure the SLOs, budgets and more. You can link an app with a previously discovered workflow component to start the authomated stitching and analysis of the traces from that workflow against the SLOs, budget or quality targets specified here.</p>\n<p>Use <a href=\"https://portal.okahu.co/login\">Okahu portal</a> to interactively configure apps, SLOs, budgets and more.</p>\n","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{vault:prod-pvatokahu-apikey}}"}]},"isInherited":true,"source":{"_postman_id":"934675cd-ccfd-48d4-ade3-05585bf4939d","id":"934675cd-ccfd-48d4-ade3-05585bf4939d","name":"Okahu Personal Cloud APIs","type":"collection"}},"urlObject":{"protocol":"https","path":["api","v1","apps","{{appname}}"],"host":["api","okahu","co"],"query":[],"variable":[]}},"response":[{"id":"157a84cd-22ed-4e39-b20b-fe080874274d","name":"Add an app to organize observations","originalRequest":{"method":"PUT","header":[],"body":{"mode":"raw","raw":" {\r\n    \"display_name\": \"Coffee RAG Azure OpenAI\",\r\n    \"description\": \"RAG Application using model hosted in Azure OpenAI\",\r\n    \"sla\": \"1.4 seconds\",\r\n    \"components\" : [\r\n        {\"component_name\": \"azure_openai_llama_index_2\"}\r\n    ]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://api.okahu.co/api/v1/apps/coffee_rag_azure_openAI"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","enabled":true},{"key":"Date","value":"Tue, 20 Aug 2024 19:49:22 GMT","enabled":true},{"key":"Server","value":"Kestrel","enabled":true},{"key":"Transfer-Encoding","value":"chunked","enabled":true},{"key":"Request-Context","value":"appId=cid-v1:d895ed51-4415-469e-bc62-b6883bb3c4e7","enabled":true}],"cookie":[],"responseTime":null,"body":"{\n    \"name\": \"coffee_rag_azure_openAI\",\n    \"display_name\": \"Coffee RAG Azure OpenAI\",\n    \"description\": \"RAG Application using model hosted in Azure OpenAI\",\n    \"sla\": \"1.4 seconds\",\n    \"owner\": \"\",\n    \"components\": [\n        {\n            \"component_name\": \"azure_openai_llama_index_2\"\n        }\n    ]\n}"}],"_postman_id":"39cffc62-a6e5-4a8c-bebd-93b455064e77"}],"id":"5ab4e09c-9064-45b4-bb37-03b77b7ffea2","description":"<p>APIs to programmatically configure the service map and add other information to direct automated stitching and analysis of telemetry for power users.</p>\n<p>Use <a href=\"https://portal.okahu.co/login\">Okahu portal</a> to interactively configure apps, SLOs, budgets and more. Okahu portal uses the same APIs.</p>\n","_postman_id":"5ab4e09c-9064-45b4-bb37-03b77b7ffea2","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{vault:prod-pvatokahu-apikey}}"}]},"isInherited":true,"source":{"_postman_id":"934675cd-ccfd-48d4-ade3-05585bf4939d","id":"934675cd-ccfd-48d4-ade3-05585bf4939d","name":"Okahu Personal Cloud APIs","type":"collection"}}},{"name":"Discover","item":[{"name":"Discover new components","id":"bc3a3d06-07f0-4724-8d7f-a8f9425a98bb","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[],"url":"https://api.okahu.co/api/v1/discovery","description":"<p>Use this API to kick off auto discovery for a new component by immediately processing traces pushed to the Okahu Cloud by the <code>okahu-observability</code> agent. Alternatively, discovery runs automatically in batches at periodic intervals to discover and add components at scale in the background.</p>\n<p>This requires instrumenting your app for automated tracing with <code>okahu-observability</code> agent. See Okahu <a href=\"https://docs.okahu.ai/docs/How_to_instrument.html\">GenAI app instrumentation</a> guide.</p>\n","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{vault:prod-pvatokahu-apikey}}"}]},"isInherited":true,"source":{"_postman_id":"934675cd-ccfd-48d4-ade3-05585bf4939d","id":"934675cd-ccfd-48d4-ade3-05585bf4939d","name":"Okahu Personal Cloud APIs","type":"collection"}},"urlObject":{"protocol":"https","path":["api","v1","discovery"],"host":["api","okahu","co"],"query":[],"variable":[]}},"response":[{"id":"786c9f8b-6005-4ae1-adbe-fb3b33f29fcf","name":"Discover new components","originalRequest":{"method":"PUT","header":[],"url":"https://api.okahu.co/api/v1/discovery"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","enabled":true},{"key":"Date","value":"Tue, 20 Aug 2024 19:36:35 GMT","enabled":true},{"key":"Server","value":"Kestrel","enabled":true},{"key":"Transfer-Encoding","value":"chunked","enabled":true},{"key":"Request-Context","value":"appId=cid-v1:d895ed51-4415-469e-bc62-b6883bb3c4e7","enabled":true}],"cookie":[],"responseTime":null,"body":"[\n    \"azure_openai_llama_index_2\"\n]"}],"_postman_id":"bc3a3d06-07f0-4724-8d7f-a8f9425a98bb"},{"name":"Run discovery on a component","id":"98845784-f242-498a-991e-d6a0db496c23","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[],"url":"https://api.okahu.co/api/v1/discovery/components/{{componentname}}","description":"<p>Discover the component of the specific name by examining the application traces.</p>\n","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{vault:prod-pvatokahu-apikey}}"}]},"isInherited":true,"source":{"_postman_id":"934675cd-ccfd-48d4-ade3-05585bf4939d","id":"934675cd-ccfd-48d4-ade3-05585bf4939d","name":"Okahu Personal Cloud APIs","type":"collection"}},"urlObject":{"protocol":"https","path":["api","v1","discovery","components","{{componentname}}"],"host":["api","okahu","co"],"query":[],"variable":[]}},"response":[],"_postman_id":"98845784-f242-498a-991e-d6a0db496c23"},{"name":"List all components","id":"401df58e-9ebd-4d1b-829e-30c00c82b4fa","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://api.okahu.co/api/v1/components","description":"<p>Return the list of all components currenly know.</p>\n","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{vault:prod-pvatokahu-apikey}}"}]},"isInherited":true,"source":{"_postman_id":"934675cd-ccfd-48d4-ade3-05585bf4939d","id":"934675cd-ccfd-48d4-ade3-05585bf4939d","name":"Okahu Personal Cloud APIs","type":"collection"}},"urlObject":{"protocol":"https","path":["api","v1","components"],"host":["api","okahu","co"],"query":[],"variable":[]}},"response":[{"id":"e8b3dd73-ac16-4a6f-8375-2ea59f8793d4","name":"List all components","originalRequest":{"method":"GET","header":[],"url":"https://api.okahu.co/api/v1/components"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","enabled":true},{"key":"Date","value":"Tue, 20 Aug 2024 19:37:38 GMT","enabled":true},{"key":"Server","value":"Kestrel","enabled":true},{"key":"Transfer-Encoding","value":"chunked","enabled":true},{"key":"Request-Context","value":"appId=cid-v1:d895ed51-4415-469e-bc62-b6883bb3c4e7","enabled":true}],"cookie":[],"responseTime":null,"body":"{\n    \"components\": [\n        {\n            \"component_name\": \"demo_langchain_wf\",\n            \"display_name\": \"demo langchain workflow\",\n            \"domain\": \"logical\",\n            \"type\": \"workflow.langchain\",\n            \"state\": \"active\",\n            \"auto_discovered\": false,\n            \"owner\": \"\",\n            \"is_playground\": true,\n            \"apps\": [\n                \"demo_coffee_rag_app\"\n            ]\n        },\n        {\n            \"component_name\": \"demo_flan_t5\",\n            \"display_name\": \"demo triton hosted flan_t5 model\",\n            \"domain\": \"logical\",\n            \"type\": \"inference.triton.model\",\n            \"state\": \"active\",\n            \"auto_discovered\": false,\n            \"owner\": \"\",\n            \"is_playground\": true,\n            \"apps\": [\n                \"demo_coffee_rag_app\"\n            ]\n        },\n        {\n            \"component_name\": \"demo_triton1\",\n            \"display_name\": \"demo triton server\",\n            \"domain\": \"infra\",\n            \"type\": \"inference.triton\",\n            \"state\": \"active\",\n            \"auto_discovered\": false,\n            \"owner\": \"\",\n            \"is_playground\": true,\n            \"properties\": {\n                \"component_url\": \"http://triton.cloud.xy.com\",\n                \"metric_target_hostname\": \"test-triton-inference-server\"\n            },\n            \"apps\": []\n        },\n        {\n            \"component_name\": \"demo_aks\",\n            \"display_name\": \"demo azure kubernetes service\",\n            \"domain\": \"infra\",\n            \"type\": \"infra.kubernetes\",\n            \"state\": \"active\",\n            \"auto_discovered\": false,\n            \"owner\": \"\",\n            \"is_playground\": true,\n            \"apps\": []\n        },\n        {\n            \"component_name\": \"demo_azure1\",\n            \"display_name\": \"demo azure1\",\n            \"domain\": \"infra\",\n            \"type\": \"azure\",\n            \"state\": \"active\",\n            \"auto_discovered\": false,\n            \"owner\": \"\",\n            \"is_playground\": true,\n            \"apps\": []\n        },\n        {\n            \"component_name\": \"demo_triton1_flan_t5\",\n            \"display_name\": \"demo_triton1_flan_t5\",\n            \"domain\": \"logical\",\n            \"type\": \"model.llm\",\n            \"state\": \"active\",\n            \"auto_discovered\": true,\n            \"owner\": \"\",\n            \"apps\": []\n        },\n        {\n            \"component_name\": \"azure_openai_llama_index_2\",\n            \"display_name\": \"azure_openai_llama_index_2\",\n            \"domain\": \"logical\",\n            \"type\": \"workflow.llamaindex\",\n            \"state\": \"active\",\n            \"auto_discovered\": true,\n            \"owner\": \"\",\n            \"apps\": []\n        },\n        {\n            \"component_name\": \"azure_openai_17ed86eeeded29fa\",\n            \"display_name\": \"azure_openai_17ed86eeeded29fa\",\n            \"domain\": \"infra\",\n            \"type\": \"inference.azopenai\",\n            \"state\": \"active\",\n            \"auto_discovered\": true,\n            \"owner\": \"\",\n            \"properties\": {\n                \"component_url\": \"https://okahu-openai-dev.openai.azure.com/\"\n            },\n            \"apps\": []\n        },\n        {\n            \"component_name\": \"azure_openai_17ed86eeeded29fa_gpt-35-turbo\",\n            \"display_name\": \"azure_openai_17ed86eeeded29fa_gpt-35-turbo\",\n            \"domain\": \"logical\",\n            \"type\": \"model.llm\",\n            \"state\": \"active\",\n            \"auto_discovered\": true,\n            \"owner\": \"\",\n            \"apps\": []\n        }\n    ]\n}"}],"_postman_id":"401df58e-9ebd-4d1b-829e-30c00c82b4fa"},{"name":"Update component","id":"136f1498-62d3-47b6-aa20-0025785e82ff","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\n\t\t\"display_name\": \"Azure Function\",\n\t\t\"domain\": \"infra\",\n\t\t\"type\": \"azure_func\",\n\t\t\"state\": \"active\",\n\t\t\"auto_discovered\": false,\n\t\t\"owner\": \"\",\n\t\t\"is_playground\": true,\n\t\t\"apps\": []\n}","options":{"raw":{"language":"json"}}},"url":"https://api.okahu.co/api/v1/components/{{component_name}}","description":"<p>Return the list of all components currenly know.</p>\n","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{vault:prod-pvatokahu-apikey}}"}]},"isInherited":true,"source":{"_postman_id":"934675cd-ccfd-48d4-ade3-05585bf4939d","id":"934675cd-ccfd-48d4-ade3-05585bf4939d","name":"Okahu Personal Cloud APIs","type":"collection"}},"urlObject":{"protocol":"https","path":["api","v1","components","{{component_name}}"],"host":["api","okahu","co"],"query":[],"variable":[]}},"response":[{"id":"abf77fe4-bbbb-444e-b3c6-4958c813c54c","name":"List all components","originalRequest":{"method":"GET","header":[],"url":"https://api.okahu.co/api/v1/components"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","enabled":true},{"key":"Date","value":"Tue, 20 Aug 2024 19:37:38 GMT","enabled":true},{"key":"Server","value":"Kestrel","enabled":true},{"key":"Transfer-Encoding","value":"chunked","enabled":true},{"key":"Request-Context","value":"appId=cid-v1:d895ed51-4415-469e-bc62-b6883bb3c4e7","enabled":true}],"cookie":[],"responseTime":null,"body":"{\n    \"components\": [\n        {\n            \"component_name\": \"demo_langchain_wf\",\n            \"display_name\": \"demo langchain workflow\",\n            \"domain\": \"logical\",\n            \"type\": \"workflow.langchain\",\n            \"state\": \"active\",\n            \"auto_discovered\": false,\n            \"owner\": \"\",\n            \"is_playground\": true,\n            \"apps\": [\n                \"demo_coffee_rag_app\"\n            ]\n        },\n        {\n            \"component_name\": \"demo_flan_t5\",\n            \"display_name\": \"demo triton hosted flan_t5 model\",\n            \"domain\": \"logical\",\n            \"type\": \"inference.triton.model\",\n            \"state\": \"active\",\n            \"auto_discovered\": false,\n            \"owner\": \"\",\n            \"is_playground\": true,\n            \"apps\": [\n                \"demo_coffee_rag_app\"\n            ]\n        },\n        {\n            \"component_name\": \"demo_triton1\",\n            \"display_name\": \"demo triton server\",\n            \"domain\": \"infra\",\n            \"type\": \"inference.triton\",\n            \"state\": \"active\",\n            \"auto_discovered\": false,\n            \"owner\": \"\",\n            \"is_playground\": true,\n            \"properties\": {\n                \"component_url\": \"http://triton.cloud.xy.com\",\n                \"metric_target_hostname\": \"test-triton-inference-server\"\n            },\n            \"apps\": []\n        },\n        {\n            \"component_name\": \"demo_aks\",\n            \"display_name\": \"demo azure kubernetes service\",\n            \"domain\": \"infra\",\n            \"type\": \"infra.kubernetes\",\n            \"state\": \"active\",\n            \"auto_discovered\": false,\n            \"owner\": \"\",\n            \"is_playground\": true,\n            \"apps\": []\n        },\n        {\n            \"component_name\": \"demo_azure1\",\n            \"display_name\": \"demo azure1\",\n            \"domain\": \"infra\",\n            \"type\": \"azure\",\n            \"state\": \"active\",\n            \"auto_discovered\": false,\n            \"owner\": \"\",\n            \"is_playground\": true,\n            \"apps\": []\n        },\n        {\n            \"component_name\": \"demo_triton1_flan_t5\",\n            \"display_name\": \"demo_triton1_flan_t5\",\n            \"domain\": \"logical\",\n            \"type\": \"model.llm\",\n            \"state\": \"active\",\n            \"auto_discovered\": true,\n            \"owner\": \"\",\n            \"apps\": []\n        },\n        {\n            \"component_name\": \"azure_openai_llama_index_2\",\n            \"display_name\": \"azure_openai_llama_index_2\",\n            \"domain\": \"logical\",\n            \"type\": \"workflow.llamaindex\",\n            \"state\": \"active\",\n            \"auto_discovered\": true,\n            \"owner\": \"\",\n            \"apps\": []\n        },\n        {\n            \"component_name\": \"azure_openai_17ed86eeeded29fa\",\n            \"display_name\": \"azure_openai_17ed86eeeded29fa\",\n            \"domain\": \"infra\",\n            \"type\": \"inference.azopenai\",\n            \"state\": \"active\",\n            \"auto_discovered\": true,\n            \"owner\": \"\",\n            \"properties\": {\n                \"component_url\": \"https://okahu-openai-dev.openai.azure.com/\"\n            },\n            \"apps\": []\n        },\n        {\n            \"component_name\": \"azure_openai_17ed86eeeded29fa_gpt-35-turbo\",\n            \"display_name\": \"azure_openai_17ed86eeeded29fa_gpt-35-turbo\",\n            \"domain\": \"logical\",\n            \"type\": \"model.llm\",\n            \"state\": \"active\",\n            \"auto_discovered\": true,\n            \"owner\": \"\",\n            \"apps\": []\n        }\n    ]\n}"}],"_postman_id":"136f1498-62d3-47b6-aa20-0025785e82ff"},{"name":"Delete a component","id":"dea4f472-002f-4566-9aac-4a608f564a4a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"body":{"mode":"raw","raw":"{\n\t\t\"display_name\": \"Azure Function\",\n\t\t\"domain\": \"infra\",\n\t\t\"type\": \"azure_func\",\n\t\t\"state\": \"active\",\n\t\t\"auto_discovered\": false,\n\t\t\"owner\": \"\",\n\t\t\"is_playground\": true,\n\t\t\"apps\": []\n}","options":{"raw":{"language":"json"}}},"url":"https://api.okahu.co/api/v1/components/{{component_name}}","description":"<p>Return the list of all components currenly know.</p>\n","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{vault:prod-pvatokahu-apikey}}"}]},"isInherited":true,"source":{"_postman_id":"934675cd-ccfd-48d4-ade3-05585bf4939d","id":"934675cd-ccfd-48d4-ade3-05585bf4939d","name":"Okahu Personal Cloud APIs","type":"collection"}},"urlObject":{"protocol":"https","path":["api","v1","components","{{component_name}}"],"host":["api","okahu","co"],"query":[],"variable":[]}},"response":[{"id":"faa8d032-efda-421a-850f-a5570f05cdd2","name":"List all components","originalRequest":{"method":"GET","header":[],"url":"https://api.okahu.co/api/v1/components"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","enabled":true},{"key":"Date","value":"Tue, 20 Aug 2024 19:37:38 GMT","enabled":true},{"key":"Server","value":"Kestrel","enabled":true},{"key":"Transfer-Encoding","value":"chunked","enabled":true},{"key":"Request-Context","value":"appId=cid-v1:d895ed51-4415-469e-bc62-b6883bb3c4e7","enabled":true}],"cookie":[],"responseTime":null,"body":"{\n    \"components\": [\n        {\n            \"component_name\": \"demo_langchain_wf\",\n            \"display_name\": \"demo langchain workflow\",\n            \"domain\": \"logical\",\n            \"type\": \"workflow.langchain\",\n            \"state\": \"active\",\n            \"auto_discovered\": false,\n            \"owner\": \"\",\n            \"is_playground\": true,\n            \"apps\": [\n                \"demo_coffee_rag_app\"\n            ]\n        },\n        {\n            \"component_name\": \"demo_flan_t5\",\n            \"display_name\": \"demo triton hosted flan_t5 model\",\n            \"domain\": \"logical\",\n            \"type\": \"inference.triton.model\",\n            \"state\": \"active\",\n            \"auto_discovered\": false,\n            \"owner\": \"\",\n            \"is_playground\": true,\n            \"apps\": [\n                \"demo_coffee_rag_app\"\n            ]\n        },\n        {\n            \"component_name\": \"demo_triton1\",\n            \"display_name\": \"demo triton server\",\n            \"domain\": \"infra\",\n            \"type\": \"inference.triton\",\n            \"state\": \"active\",\n            \"auto_discovered\": false,\n            \"owner\": \"\",\n            \"is_playground\": true,\n            \"properties\": {\n                \"component_url\": \"http://triton.cloud.xy.com\",\n                \"metric_target_hostname\": \"test-triton-inference-server\"\n            },\n            \"apps\": []\n        },\n        {\n            \"component_name\": \"demo_aks\",\n            \"display_name\": \"demo azure kubernetes service\",\n            \"domain\": \"infra\",\n            \"type\": \"infra.kubernetes\",\n            \"state\": \"active\",\n            \"auto_discovered\": false,\n            \"owner\": \"\",\n            \"is_playground\": true,\n            \"apps\": []\n        },\n        {\n            \"component_name\": \"demo_azure1\",\n            \"display_name\": \"demo azure1\",\n            \"domain\": \"infra\",\n            \"type\": \"azure\",\n            \"state\": \"active\",\n            \"auto_discovered\": false,\n            \"owner\": \"\",\n            \"is_playground\": true,\n            \"apps\": []\n        },\n        {\n            \"component_name\": \"demo_triton1_flan_t5\",\n            \"display_name\": \"demo_triton1_flan_t5\",\n            \"domain\": \"logical\",\n            \"type\": \"model.llm\",\n            \"state\": \"active\",\n            \"auto_discovered\": true,\n            \"owner\": \"\",\n            \"apps\": []\n        },\n        {\n            \"component_name\": \"azure_openai_llama_index_2\",\n            \"display_name\": \"azure_openai_llama_index_2\",\n            \"domain\": \"logical\",\n            \"type\": \"workflow.llamaindex\",\n            \"state\": \"active\",\n            \"auto_discovered\": true,\n            \"owner\": \"\",\n            \"apps\": []\n        },\n        {\n            \"component_name\": \"azure_openai_17ed86eeeded29fa\",\n            \"display_name\": \"azure_openai_17ed86eeeded29fa\",\n            \"domain\": \"infra\",\n            \"type\": \"inference.azopenai\",\n            \"state\": \"active\",\n            \"auto_discovered\": true,\n            \"owner\": \"\",\n            \"properties\": {\n                \"component_url\": \"https://okahu-openai-dev.openai.azure.com/\"\n            },\n            \"apps\": []\n        },\n        {\n            \"component_name\": \"azure_openai_17ed86eeeded29fa_gpt-35-turbo\",\n            \"display_name\": \"azure_openai_17ed86eeeded29fa_gpt-35-turbo\",\n            \"domain\": \"logical\",\n            \"type\": \"model.llm\",\n            \"state\": \"active\",\n            \"auto_discovered\": true,\n            \"owner\": \"\",\n            \"apps\": []\n        }\n    ]\n}"}],"_postman_id":"dea4f472-002f-4566-9aac-4a608f564a4a"},{"name":"List dependencies of a component","id":"70650698-8cbd-4512-8aae-aaf1fb8d2436","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://api.okahu.co/api/v1/components/{{componentname}}/dependencies?view=graph","description":"<p>List all components that have any dependency on the given component. This will include all the component relationships, namely</p>\n<ul>\n<li><p>Any application that this component is part of</p>\n</li>\n<li><p>Any service component that's hosting this component</p>\n</li>\n<li><p>Any logical/service component that's hosted by this component</p>\n</li>\n<li><p>Any logical compnent that uses this component.</p>\n</li>\n</ul>\n","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{vault:prod-pvatokahu-apikey}}"}]},"isInherited":true,"source":{"_postman_id":"934675cd-ccfd-48d4-ade3-05585bf4939d","id":"934675cd-ccfd-48d4-ade3-05585bf4939d","name":"Okahu Personal Cloud APIs","type":"collection"}},"urlObject":{"protocol":"https","path":["api","v1","components","{{componentname}}","dependencies"],"host":["api","okahu","co"],"query":[{"key":"view","value":"graph"}],"variable":[]}},"response":[{"id":"6fe95fb2-b5a4-42a8-85d6-ffdee860550a","name":"List dependencies of a component","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://api.okahu.co/api/v1/components/demo_langchain_wf/dependencies?view=graph","protocol":"https","host":["api","okahu","co"],"path":["api","v1","components","demo_langchain_wf","dependencies"],"query":[{"key":"view","value":"graph"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","enabled":true},{"key":"Date","value":"Tue, 20 Aug 2024 19:38:48 GMT","enabled":true},{"key":"Server","value":"Kestrel","enabled":true},{"key":"Transfer-Encoding","value":"chunked","enabled":true},{"key":"Request-Context","value":"appId=cid-v1:d895ed51-4415-469e-bc62-b6883bb3c4e7","enabled":true}],"cookie":[],"responseTime":null,"body":"{\n    \"apps\": [\n        {\n            \"name\": \"demo_coffee_rag_app\",\n            \"display_name\": \"A demo coffee RAG app\",\n            \"description\": \"A demo coffee RAG app\",\n            \"sla\": \"0 seconds\",\n            \"owner\": \"\",\n            \"is_playground\": true\n        }\n    ],\n    \"components\": [\n        {\n            \"component_name\": \"demo_langchain_wf\",\n            \"display_name\": \"demo langchain workflow\",\n            \"domain\": \"logical\",\n            \"type\": \"workflow.langchain\",\n            \"state\": \"active\",\n            \"auto_discovered\": false,\n            \"owner\": \"\",\n            \"is_playground\": true\n        },\n        {\n            \"component_name\": \"demo_azure1\",\n            \"display_name\": \"demo azure1\",\n            \"domain\": \"infra\",\n            \"type\": \"azure\",\n            \"state\": \"active\",\n            \"auto_discovered\": false,\n            \"owner\": \"\",\n            \"is_playground\": true\n        },\n        {\n            \"component_name\": \"demo_aks\",\n            \"display_name\": \"demo azure kubernetes service\",\n            \"domain\": \"infra\",\n            \"type\": \"infra.kubernetes\",\n            \"state\": \"active\",\n            \"auto_discovered\": false,\n            \"owner\": \"\",\n            \"is_playground\": true\n        },\n        {\n            \"component_name\": \"demo_flan_t5\",\n            \"display_name\": \"demo triton hosted flan_t5 model\",\n            \"domain\": \"logical\",\n            \"type\": \"inference.triton.model\",\n            \"state\": \"active\",\n            \"auto_discovered\": false,\n            \"owner\": \"\",\n            \"is_playground\": true\n        },\n        {\n            \"component_name\": \"demo_triton1\",\n            \"display_name\": \"demo triton server\",\n            \"domain\": \"infra\",\n            \"type\": \"inference.triton\",\n            \"state\": \"active\",\n            \"auto_discovered\": false,\n            \"owner\": \"\",\n            \"is_playground\": true,\n            \"properties\": {\n                \"component_url\": \"http://triton.cloud.xy.com\",\n                \"metric_target_hostname\": \"test-triton-inference-server\"\n            }\n        },\n        {\n            \"component_name\": \"demo_triton1_flan_t5\",\n            \"display_name\": \"demo_triton1_flan_t5\",\n            \"domain\": \"logical\",\n            \"type\": \"model.llm\",\n            \"state\": \"active\",\n            \"auto_discovered\": true,\n            \"owner\": \"\"\n        }\n    ],\n    \"providers\": [\n        {\n            \"provider_name\": \"demo_azure_provider\",\n            \"display_name\": \"demo azure provider\",\n            \"type\": \"azure\",\n            \"owner\": \"\",\n            \"is_playground\": true\n        }\n    ],\n    \"dependencies\": [\n        {\n            \"source\": \"demo_langchain_wf\",\n            \"dependency_type\": \"hosted_by\",\n            \"target\": \"demo_azure1\"\n        },\n        {\n            \"source\": \"demo_azure1\",\n            \"dependency_type\": \"provided_by\",\n            \"target\": \"demo_azure_provider\"\n        },\n        {\n            \"source\": \"demo_aks\",\n            \"dependency_type\": \"hosted_by\",\n            \"target\": \"demo_azure1\"\n        },\n        {\n            \"source\": \"demo_langchain_wf\",\n            \"dependency_type\": \"consumes\",\n            \"target\": \"demo_flan_t5\"\n        },\n        {\n            \"source\": \"demo_flan_t5\",\n            \"dependency_type\": \"hosted_by\",\n            \"target\": \"demo_triton1\"\n        },\n        {\n            \"source\": \"demo_coffee_rag_app\",\n            \"dependency_type\": \"comprises\",\n            \"target\": \"demo_flan_t5\"\n        },\n        {\n            \"source\": \"demo_langchain_wf\",\n            \"dependency_type\": \"consumes\",\n            \"target\": \"demo_triton1_flan_t5\"\n        },\n        {\n            \"source\": \"demo_triton1_flan_t5\",\n            \"dependency_type\": \"served_by\",\n            \"target\": \"demo_triton1\"\n        },\n        {\n            \"source\": \"demo_coffee_rag_app\",\n            \"dependency_type\": \"comprises\",\n            \"target\": \"demo_langchain_wf\"\n        }\n    ]\n}"}],"_postman_id":"70650698-8cbd-4512-8aae-aaf1fb8d2436"},{"name":"List all the apps under observation","id":"72175a72-21bd-4bdf-b350-a4662df10368","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://api.okahu.co/api/v1/apps/","description":"<p>List all the applications that are observed by Okahu, along with details like description, SLA etc.</p>\n","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{vault:prod-pvatokahu-apikey}}"}]},"isInherited":true,"source":{"_postman_id":"934675cd-ccfd-48d4-ade3-05585bf4939d","id":"934675cd-ccfd-48d4-ade3-05585bf4939d","name":"Okahu Personal Cloud APIs","type":"collection"}},"urlObject":{"protocol":"https","path":["api","v1","apps",""],"host":["api","okahu","co"],"query":[],"variable":[]}},"response":[{"id":"0cc62dab-a675-4147-a336-a9ea291cf28a","name":"List all the apps under observation","originalRequest":{"method":"GET","header":[],"url":"https://api.okahu.co/api/v1/apps/"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","enabled":true},{"key":"Date","value":"Tue, 20 Aug 2024 19:49:45 GMT","enabled":true},{"key":"Server","value":"Kestrel","enabled":true},{"key":"Transfer-Encoding","value":"chunked","enabled":true},{"key":"Request-Context","value":"appId=cid-v1:d895ed51-4415-469e-bc62-b6883bb3c4e7","enabled":true}],"cookie":[],"responseTime":null,"body":"{\n    \"apps\": [\n        {\n            \"name\": \"demo_coffee_rag_app\",\n            \"display_name\": \"A demo coffee RAG app\",\n            \"description\": \"A demo coffee RAG app\",\n            \"sla\": \"0 seconds\",\n            \"owner\": \"\",\n            \"is_playground\": true\n        },\n        {\n            \"name\": \"coffee_rag_azure_openAI\",\n            \"display_name\": \"Coffee RAG Azure OpenAI\",\n            \"description\": \"RAG Application using model hosted in Azure OpenAI\",\n            \"sla\": \"1.4 seconds\",\n            \"owner\": \"\"\n        }\n    ]\n}"}],"_postman_id":"72175a72-21bd-4bdf-b350-a4662df10368"},{"name":"View the graph of components in an app","id":"586565e7-cbf7-42bf-96eb-1155249af586","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://api.okahu.co/api/v1/apps/{{appname}}?view=graph&fetch=infra","description":"<p>List all the components that are part of the given application along with their dependencies.</p>\n","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{vault:prod-pvatokahu-apikey}}"}]},"isInherited":true,"source":{"_postman_id":"934675cd-ccfd-48d4-ade3-05585bf4939d","id":"934675cd-ccfd-48d4-ade3-05585bf4939d","name":"Okahu Personal Cloud APIs","type":"collection"}},"urlObject":{"protocol":"https","path":["api","v1","apps","{{appname}}"],"host":["api","okahu","co"],"query":[{"key":"view","value":"graph"},{"key":"fetch","value":"infra"}],"variable":[]}},"response":[{"id":"ecf8383a-1d81-4d13-9060-45c3c4626429","name":"View the graph of components in an app","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://api.okahu.co/api/v1/apps/demo_coffee_rag_app?view=graph&fetch=infra","protocol":"https","host":["api","okahu","co"],"path":["api","v1","apps","demo_coffee_rag_app"],"query":[{"key":"view","value":"graph"},{"key":"fetch","value":"infra"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","enabled":true},{"key":"Date","value":"Tue, 20 Aug 2024 19:50:06 GMT","enabled":true},{"key":"Server","value":"Kestrel","enabled":true},{"key":"Transfer-Encoding","value":"chunked","enabled":true},{"key":"Request-Context","value":"appId=cid-v1:d895ed51-4415-469e-bc62-b6883bb3c4e7","enabled":true}],"cookie":[],"responseTime":null,"body":"{\n    \"name\": \"demo_coffee_rag_app\",\n    \"display_name\": \"A demo coffee RAG app\",\n    \"description\": \"A demo coffee RAG app\",\n    \"sla\": \"0 seconds\",\n    \"owner\": \"\",\n    \"is_playground\": true,\n    \"components\": [\n        {\n            \"component_name\": \"demo_langchain_wf\",\n            \"display_name\": \"demo langchain workflow\",\n            \"domain\": \"logical\",\n            \"type\": \"workflow.langchain\",\n            \"state\": \"active\",\n            \"auto_discovered\": false,\n            \"owner\": \"\",\n            \"is_playground\": true\n        },\n        {\n            \"component_name\": \"demo_azure1\",\n            \"display_name\": \"demo azure1\",\n            \"domain\": \"infra\",\n            \"type\": \"azure\",\n            \"state\": \"active\",\n            \"auto_discovered\": false,\n            \"owner\": \"\",\n            \"is_playground\": true\n        },\n        {\n            \"component_name\": \"demo_flan_t5\",\n            \"display_name\": \"demo triton hosted flan_t5 model\",\n            \"domain\": \"logical\",\n            \"type\": \"inference.triton.model\",\n            \"state\": \"active\",\n            \"auto_discovered\": false,\n            \"owner\": \"\",\n            \"is_playground\": true\n        },\n        {\n            \"component_name\": \"demo_triton1\",\n            \"display_name\": \"demo triton server\",\n            \"domain\": \"infra\",\n            \"type\": \"inference.triton\",\n            \"state\": \"active\",\n            \"auto_discovered\": false,\n            \"owner\": \"\",\n            \"is_playground\": true,\n            \"properties\": {\n                \"component_url\": \"http://triton.cloud.xy.com\",\n                \"metric_target_hostname\": \"test-triton-inference-server\"\n            }\n        },\n        {\n            \"component_name\": \"demo_aks\",\n            \"display_name\": \"demo azure kubernetes service\",\n            \"domain\": \"infra\",\n            \"type\": \"infra.kubernetes\",\n            \"state\": \"active\",\n            \"auto_discovered\": false,\n            \"owner\": \"\",\n            \"is_playground\": true\n        },\n        {\n            \"component_name\": \"demo_triton1_flan_t5\",\n            \"display_name\": \"demo_triton1_flan_t5\",\n            \"domain\": \"logical\",\n            \"type\": \"model.llm\",\n            \"state\": \"active\",\n            \"auto_discovered\": true,\n            \"owner\": \"\"\n        }\n    ],\n    \"dependencies\": [\n        {\n            \"source\": \"demo_langchain_wf\",\n            \"dependency_type\": \"hosted_by\",\n            \"target\": \"demo_azure1\"\n        },\n        {\n            \"source\": \"demo_azure1\",\n            \"dependency_type\": \"provided_by\",\n            \"target\": \"demo_azure_provider\"\n        },\n        {\n            \"source\": \"demo_langchain_wf\",\n            \"dependency_type\": \"consumes\",\n            \"target\": \"demo_flan_t5\"\n        },\n        {\n            \"source\": \"demo_flan_t5\",\n            \"dependency_type\": \"hosted_by\",\n            \"target\": \"demo_triton1\"\n        },\n        {\n            \"source\": \"demo_triton1\",\n            \"dependency_type\": \"hosted_by\",\n            \"target\": \"demo_aks\"\n        },\n        {\n            \"source\": \"demo_triton1\",\n            \"dependency_type\": \"provided_by\",\n            \"target\": \"demo_azure_provider\"\n        },\n        {\n            \"source\": \"demo_langchain_wf\",\n            \"dependency_type\": \"consumes\",\n            \"target\": \"demo_triton1_flan_t5\"\n        },\n        {\n            \"source\": \"demo_triton1_flan_t5\",\n            \"dependency_type\": \"served_by\",\n            \"target\": \"demo_triton1\"\n        },\n        {\n            \"source\": \"demo_aks\",\n            \"dependency_type\": \"hosted_by\",\n            \"target\": \"demo_azure1\"\n        },\n        {\n            \"source\": \"demo_aks\",\n            \"dependency_type\": \"provided_by\",\n            \"target\": \"demo_azure_provider\"\n        }\n    ],\n    \"providers\": [\n        {\n            \"provider_name\": \"demo_azure_provider\",\n            \"display_name\": \"demo azure provider\",\n            \"type\": \"azure\",\n            \"owner\": \"\",\n            \"is_playground\": true\n        }\n    ]\n}"}],"_postman_id":"586565e7-cbf7-42bf-96eb-1155249af586"}],"id":"25d2f524-b35d-4fcb-a757-87f6f3f93ec5","description":"<p>Discover and explore the components, services, and dependencies in your AI application ecosystem. These APIs help you:</p>\n<ul>\n<li><p>List all components currently being observed by Okahu</p>\n</li>\n<li><p>View component dependencies and relationships</p>\n</li>\n<li><p>Explore the service graph to understand how your app components interact</p>\n</li>\n<li><p>Update component metadata and configurations</p>\n</li>\n</ul>\n<p>Use these endpoints to build a comprehensive map of your application architecture and understand the relationships between different services, workflows, and infrastructure components.</p>\n","_postman_id":"25d2f524-b35d-4fcb-a757-87f6f3f93ec5","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{vault:prod-pvatokahu-apikey}}"}]},"isInherited":true,"source":{"_postman_id":"934675cd-ccfd-48d4-ade3-05585bf4939d","id":"934675cd-ccfd-48d4-ade3-05585bf4939d","name":"Okahu Personal Cloud APIs","type":"collection"}}},{"name":"Observe","item":[{"name":"List traces from a workflow","id":"c9526953-aa1a-4545-9e58-4bbfe3e1f5d8","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://api.okahu.co/api/v1/workflows/{{component_name}}/traces","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{vault:prod-pvatokahu-apikey}}"}]},"isInherited":true,"source":{"_postman_id":"934675cd-ccfd-48d4-ade3-05585bf4939d","id":"934675cd-ccfd-48d4-ade3-05585bf4939d","name":"Okahu Personal Cloud APIs","type":"collection"}},"urlObject":{"protocol":"https","path":["api","v1","workflows","{{component_name}}","traces"],"host":["api","okahu","co"],"query":[],"variable":[]}},"response":[{"id":"299e57c9-a0d3-48f1-b9db-83942c7a91c4","name":"List traces from a workflow","originalRequest":{"method":"GET","header":[],"url":"https://api.okahu.co/api/v1/workflows/demo_langchain_wf/traces"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","enabled":true},{"key":"Date","value":"Tue, 20 Aug 2024 19:54:19 GMT","enabled":true},{"key":"Server","value":"Kestrel","enabled":true},{"key":"Transfer-Encoding","value":"chunked","enabled":true},{"key":"Request-Context","value":"appId=cid-v1:d895ed51-4415-469e-bc62-b6883bb3c4e7","enabled":true}],"cookie":[],"responseTime":null,"body":"{\n    \"traces\": [\n        {\n            \"trace_id\": \"8728ff6e5676454e961a09f3fdd7d903\",\n            \"start_time\": \"2024-08-20T00:23:14.284772Z\",\n            \"end_time\": \"2024-08-20T00:23:16.208195Z\",\n            \"duration_ms\": \"1923\",\n            \"status\": \"success\",\n            \"spans_link\": \"/api/v1/workflows/demo_langchain_wf/traces/8728ff6e5676454e961a09f3fdd7d903/spans\"\n        },\n        {\n            \"trace_id\": \"ec0332eb888143378221af9de1f12b28\",\n            \"start_time\": \"2024-08-20T00:12:24.474308Z\",\n            \"end_time\": \"2024-08-20T00:12:25.891953Z\",\n            \"duration_ms\": \"1418\",\n            \"status\": \"success\",\n            \"spans_link\": \"/api/v1/workflows/demo_langchain_wf/traces/ec0332eb888143378221af9de1f12b28/spans\"\n        },\n        {\n            \"trace_id\": \"baacccea0b8c46e5b61dce97329528e8\",\n            \"start_time\": \"2024-08-20T00:01:20.413512Z\",\n            \"end_time\": \"2024-08-20T00:01:22.610308Z\",\n            \"duration_ms\": \"2197\",\n            \"status\": \"success\",\n            \"spans_link\": \"/api/v1/workflows/demo_langchain_wf/traces/baacccea0b8c46e5b61dce97329528e8/spans\"\n        },\n        {\n            \"trace_id\": \"3e1e939e1f624ddf813ca74ec2982dca\",\n            \"start_time\": \"2024-08-20T00:00:38.599358Z\",\n            \"end_time\": \"2024-08-20T00:00:40.418430Z\",\n            \"duration_ms\": \"1819\",\n            \"status\": \"error\",\n            \"spans_link\": \"/api/v1/workflows/demo_langchain_wf/traces/3e1e939e1f624ddf813ca74ec2982dca/spans\"\n        },\n        {\n            \"trace_id\": \"70da8d4c638046c7a39d832af4ea8518\",\n            \"start_time\": \"2024-08-20T00:00:09.606159Z\",\n            \"end_time\": \"2024-08-20T00:00:11.960387Z\",\n            \"duration_ms\": \"2354\",\n            \"status\": \"success\",\n            \"spans_link\": \"/api/v1/workflows/demo_langchain_wf/traces/70da8d4c638046c7a39d832af4ea8518/spans\"\n        }\n    ]\n}"}],"_postman_id":"c9526953-aa1a-4545-9e58-4bbfe3e1f5d8"},{"name":"Explore traces for root cause analysis","id":"db2b15e3-1098-4d1b-ad19-727e673cba83","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://api.okahu.co/api/v1/workflows/{{component_name}}/traces/{{traceID}}/spans","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{vault:prod-pvatokahu-apikey}}"}]},"isInherited":true,"source":{"_postman_id":"934675cd-ccfd-48d4-ade3-05585bf4939d","id":"934675cd-ccfd-48d4-ade3-05585bf4939d","name":"Okahu Personal Cloud APIs","type":"collection"}},"urlObject":{"protocol":"https","path":["api","v1","workflows","{{component_name}}","traces","{{traceID}}","spans"],"host":["api","okahu","co"],"query":[],"variable":[]}},"response":[{"id":"6b3137e4-42c1-4485-9c85-1562552ac493","name":"Explore a trace with spans and components","originalRequest":{"method":"GET","header":[],"url":"https://api.okahu.co/api/v1/workflows/demo_langchain_wf/traces/8728ff6e5676454e961a09f3fdd7d903/spans"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","enabled":true},{"key":"Date","value":"Tue, 20 Aug 2024 19:55:10 GMT","enabled":true},{"key":"Server","value":"Kestrel","enabled":true},{"key":"Transfer-Encoding","value":"chunked","enabled":true},{"key":"Request-Context","value":"appId=cid-v1:d895ed51-4415-469e-bc62-b6883bb3c4e7","enabled":true}],"cookie":[],"responseTime":null,"body":"{\n    \"trace_id\": \"8728ff6e5676454e961a09f3fdd7d903\",\n    \"start_time\": \"2024-08-20T00:23:14.284772Z\",\n    \"end_time\": \"2024-08-20T00:23:16.208195Z\",\n    \"duration_ms\": \"1923\",\n    \"spans\": [\n        {\n            \"span_name\": \"RunnablePassthrough\",\n            \"start_time\": \"2024-08-20T00:23:14.287133Z\",\n            \"end_time\": \"2024-08-20T00:23:14.287217Z\",\n            \"duration_ms\": \"0\",\n            \"span_id\": \"0bbb961e927242b2a6c92ea5a154b9d4\",\n            \"trace_id\": \"8728ff6e5676454e961a09f3fdd7d903\",\n            \"parent_id\": \"d0ba8dbfb9fb4d5d8279bdd3d8ad69c6\"\n        },\n        {\n            \"span_name\": \"RunnableSequence\",\n            \"start_time\": \"2024-08-20T00:23:14.288626Z\",\n            \"end_time\": \"2024-08-20T00:23:15.422650Z\",\n            \"duration_ms\": \"1134\",\n            \"span_id\": \"3b57ed0cf4ca48eaba46fec43122b678\",\n            \"trace_id\": \"8728ff6e5676454e961a09f3fdd7d903\",\n            \"parent_id\": \"d0ba8dbfb9fb4d5d8279bdd3d8ad69c6\"\n        },\n        {\n            \"span_name\": \"RunnableLambda\",\n            \"start_time\": \"2024-08-20T00:23:15.422524Z\",\n            \"end_time\": \"2024-08-20T00:23:15.422630Z\",\n            \"duration_ms\": \"0\",\n            \"span_id\": \"47c7be1376744f98b57e06e56d8b5d54\",\n            \"trace_id\": \"8728ff6e5676454e961a09f3fdd7d903\",\n            \"parent_id\": \"3b57ed0cf4ca48eaba46fec43122b678\"\n        },\n        {\n            \"span_name\": \"ChatPromptTemplate\",\n            \"start_time\": \"2024-08-20T00:23:15.423032Z\",\n            \"end_time\": \"2024-08-20T00:23:15.423156Z\",\n            \"duration_ms\": \"0\",\n            \"span_id\": \"7420555db3ae4d509923825a2a3131f2\",\n            \"trace_id\": \"8728ff6e5676454e961a09f3fdd7d903\",\n            \"parent_id\": \"8728ff6e5676454e961a09f3fdd7d903\"\n        },\n        {\n            \"span_name\": \"RunnableSequence\",\n            \"start_time\": \"2024-08-20T00:23:14.284772Z\",\n            \"end_time\": \"2024-08-20T00:23:16.208195Z\",\n            \"duration_ms\": \"1923\",\n            \"span_id\": \"8728ff6e5676454e961a09f3fdd7d903\",\n            \"trace_id\": \"8728ff6e5676454e961a09f3fdd7d903\",\n            \"parent_id\": \"None\",\n            \"attributes\": {\n                \"input\": \"what is the worst coffee?\",\n                \"output\": \"The article is about the best coffee, as it describes the most expensive brew.\",\n                \"workflow_name\": \"demo_langchain_wf\",\n                \"handler_version\": \"0.0.5\"\n            }\n        },\n        {\n            \"span_name\": \"TritonLLM\",\n            \"start_time\": \"2024-08-20T00:23:15.423471Z\",\n            \"end_time\": \"2024-08-20T00:23:16.206244Z\",\n            \"duration_ms\": \"783\",\n            \"span_id\": \"880a5016c11f46c3bd947d7d412c5205\",\n            \"trace_id\": \"8728ff6e5676454e961a09f3fdd7d903\",\n            \"parent_id\": \"8728ff6e5676454e961a09f3fdd7d903\",\n            \"attributes\": {\n                \"server_url\": \"http://triton.cloud.xy.com/v2/models/flan_t5/infer\",\n                \"dependent_component_metadata\": {\n                    \"metric_links\": [\n                        \"/api/v1/components/demo_triton1/metrics/gpu_utilization?start_time=2024-08-20T00:22:15Z&end_time=2024-08-20T00:24:16Z\",\n                        \"/api/v1/components/demo_triton1/metrics/cpu_utilization?start_time=2024-08-20T00:22:15Z&end_time=2024-08-20T00:24:16Z\"\n                    ]\n                }\n            }\n        },\n        {\n            \"span_name\": \"VectorStoreRetriever\",\n            \"start_time\": \"2024-08-20T00:23:14.288902Z\",\n            \"end_time\": \"2024-08-20T00:23:15.422202Z\",\n            \"duration_ms\": \"1133\",\n            \"span_id\": \"99fda28be0ee4d699f4e0341396ebc15\",\n            \"trace_id\": \"8728ff6e5676454e961a09f3fdd7d903\",\n            \"parent_id\": \"3b57ed0cf4ca48eaba46fec43122b678\"\n        },\n        {\n            \"span_name\": \"compute\",\n            \"start_time\": \"2024-08-20T00:23:15.885841Z\",\n            \"end_time\": \"2024-08-20T00:23:16.161927Z\",\n            \"duration_ms\": \"276\",\n            \"span_id\": \"9bd616bb9cc894b1\",\n            \"trace_id\": \"8728ff6e5676454e961a09f3fdd7d903\",\n            \"parent_id\": \"ae08ca84e7cbd3a5\",\n            \"attributes\": {}\n        },\n        {\n            \"span_name\": \"StrOutputParser\",\n            \"start_time\": \"2024-08-20T00:23:16.200783Z\",\n            \"end_time\": \"2024-08-20T00:23:16.208009Z\",\n            \"duration_ms\": \"7\",\n            \"span_id\": \"abfce8c03f93474ea70435925c864864\",\n            \"trace_id\": \"8728ff6e5676454e961a09f3fdd7d903\",\n            \"parent_id\": \"8728ff6e5676454e961a09f3fdd7d903\"\n        },\n        {\n            \"span_name\": \"flan_t5\",\n            \"start_time\": \"2024-08-20T00:23:15.885794Z\",\n            \"end_time\": \"2024-08-20T00:23:16.161959Z\",\n            \"duration_ms\": \"276\",\n            \"span_id\": \"ae08ca84e7cbd3a5\",\n            \"trace_id\": \"8728ff6e5676454e961a09f3fdd7d903\",\n            \"parent_id\": \"bda3487de38cc357\",\n            \"attributes\": [\n                {\n                    \"key\": \"triton.model_name\",\n                    \"value\": {\n                        \"string_value\": \"flan_t5\"\n                    }\n                },\n                {\n                    \"key\": \"triton.model_version\",\n                    \"value\": {\n                        \"int_value\": \"1\"\n                    }\n                },\n                {\n                    \"key\": \"triton.trace_id\",\n                    \"value\": {\n                        \"int_value\": \"21\"\n                    }\n                },\n                {\n                    \"key\": \"triton.trace_parent_id\",\n                    \"value\": {\n                        \"int_value\": \"0\"\n                    }\n                },\n                {\n                    \"key\": \"triton.request_id\",\n                    \"value\": {\n                        \"string_value\": \"8728ff6e-5676-454e-961a-09f3fdd7d903\"\n                    }\n                }\n            ]\n        },\n        {\n            \"span_name\": \"InferRequest\",\n            \"start_time\": \"2024-08-20T00:23:15.885725Z\",\n            \"end_time\": \"2024-08-20T00:23:16.161962Z\",\n            \"duration_ms\": \"276\",\n            \"span_id\": \"bda3487de38cc357\",\n            \"trace_id\": \"8728ff6e5676454e961a09f3fdd7d903\",\n            \"parent_id\": \"00880a5016c11f46\",\n            \"attributes\": {}\n        },\n        {\n            \"span_name\": \"RunnableParallel<context,question>\",\n            \"start_time\": \"2024-08-20T00:23:14.286510Z\",\n            \"end_time\": \"2024-08-20T00:23:15.422767Z\",\n            \"duration_ms\": \"1136\",\n            \"span_id\": \"d0ba8dbfb9fb4d5d8279bdd3d8ad69c6\",\n            \"trace_id\": \"8728ff6e5676454e961a09f3fdd7d903\",\n            \"parent_id\": \"8728ff6e5676454e961a09f3fdd7d903\"\n        }\n    ]\n}"}],"_postman_id":"db2b15e3-1098-4d1b-ad19-727e673cba83"},{"name":"Explore metrics of app serving or model inference cloud service","id":"6af0d335-c432-4591-8031-7afc939edbcf","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://api.okahu.co/api/v1/components/{{componentname}}/metrics/cpu_utilization?start_time={{UTC}}&end_time={{UTC}}","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{vault:prod-pvatokahu-apikey}}"}]},"isInherited":true,"source":{"_postman_id":"934675cd-ccfd-48d4-ade3-05585bf4939d","id":"934675cd-ccfd-48d4-ade3-05585bf4939d","name":"Okahu Personal Cloud APIs","type":"collection"}},"urlObject":{"protocol":"https","path":["api","v1","components","{{componentname}}","metrics","cpu_utilization"],"host":["api","okahu","co"],"query":[{"key":"start_time","value":"{{UTC}}"},{"key":"end_time","value":"{{UTC}}"}],"variable":[]}},"response":[{"id":"940ca679-c250-46f9-b4d2-f50aa667101c","name":"Get metrics from an infra component","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://api.okahu.co/api/v1/components/demo_triton1/metrics/cpu_utilization?start_time=2024-08-20T00:38:00&end_time=2024-08-20T00:40:00","protocol":"https","host":["api","okahu","co"],"path":["api","v1","components","demo_triton1","metrics","cpu_utilization"],"query":[{"key":"start_time","value":"2024-08-20T00:38:00"},{"key":"end_time","value":"2024-08-20T00:40:00"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","enabled":true},{"key":"Date","value":"Tue, 20 Aug 2024 20:00:26 GMT","enabled":true},{"key":"Server","value":"Kestrel","enabled":true},{"key":"Transfer-Encoding","value":"chunked","enabled":true},{"key":"Request-Context","value":"appId=cid-v1:d895ed51-4415-469e-bc62-b6883bb3c4e7","enabled":true}],"cookie":[],"responseTime":null,"body":"{\n    \"start_time\": \"2024-08-20T00:38:00.000000Z\",\n    \"end_time\": \"2024-08-20T00:40:30.000000Z\",\n    \"description\": \"Total CPU utilization rate [0.0 - 1.0]. Aggregated across all cores since last interval\",\n    \"doc_link\": \"https://docs.nvidia.com/deeplearning/triton-inference-server/user-guide/docs/user_guide/metrics.html#cpu-metrics\",\n    \"cpu_utilization\": [\n        {\n            \"timestamp\": \"2024-08-20T00:39:30.000000Z\",\n            \"value\": {\n                \"gauge\": 98.49581271\n            },\n            \"triton_ip_address\": \"10.224.0.158\"\n        },\n        {\n            \"timestamp\": \"2024-08-20T00:39:00.000000Z\",\n            \"value\": {\n                \"gauge\": 76.60606867\n            },\n            \"triton_ip_address\": \"10.224.0.158\"\n        },\n        {\n            \"timestamp\": \"2024-08-20T00:38:30.000000Z\",\n            \"value\": {\n                \"gauge\": 60.90163962\n            },\n            \"triton_ip_address\": \"10.224.0.158\"\n        }\n    ]\n}"}],"_postman_id":"6af0d335-c432-4591-8031-7afc939edbcf"},{"name":"Explore prompts to measure quality","id":"a73a1de8-f040-4939-b144-1fa8f166ede7","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://api.okahu.co/api/v1/prompts","description":"<p>Search prompt input and responses.</p>\n<p>Okahu traces capture input prompts and inference response. This API allows you to search text snippets in your applications prompt history.</p>\n","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{vault:prod-pvatokahu-apikey}}"}]},"isInherited":true,"source":{"_postman_id":"934675cd-ccfd-48d4-ade3-05585bf4939d","id":"934675cd-ccfd-48d4-ade3-05585bf4939d","name":"Okahu Personal Cloud APIs","type":"collection"}},"urlObject":{"protocol":"https","path":["api","v1","prompts"],"host":["api","okahu","co"],"query":[{"disabled":true,"description":{"content":"<p>Start time of search windows, UTC format yyyy-MM-ddTHH:mm:ss[.fffZ]</p>\n","type":"text/plain"},"key":"start_time","value":""},{"disabled":true,"description":{"content":"<p>Start time of search windows, UTC format yyyy-MM-ddTHH:mm:ss[.fffZ]</p>\n","type":"text/plain"},"key":"end_time","value":""},{"disabled":true,"description":{"content":"<p>Limit search to this Trace ID</p>\n","type":"text/plain"},"key":"trace_id","value":""},{"disabled":true,"description":{"content":"<p>Limit search to this Application name</p>\n","type":"text/plain"},"key":"app_name","value":""},{"disabled":true,"description":{"content":"<p>Limit search to this workflow name </p>\n","type":"text/plain"},"key":"workflow_name","value":""},{"disabled":true,"description":{"content":"<p>Limit search to this workflow type</p>\n","type":"text/plain"},"key":"workflow_type","value":""},{"disabled":true,"description":{"content":"<p>Limit search to this model</p>\n","type":"text/plain"},"key":"model_name","value":""},{"disabled":true,"description":{"content":"<p>Text to search in prompts </p>\n","type":"text/plain"},"key":"search","value":""},{"disabled":true,"description":{"content":"<p>Comma separated ist of promp fields to seach in. Supported values:\ninput: Search in input prompt\noutput: Search in response output </p>\n","type":"text/plain"},"key":"search_fields","value":"input,output"}],"variable":[]}},"response":[{"id":"c5b65129-2e78-4a8c-a6d1-a1cd82b9535e","name":"Search for prompt within the store","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://api.okahu.co/api/v1/prompts","protocol":"https","host":["api","okahu","co"],"path":["api","v1","prompts"],"query":[{"key":"start_time","value":"","description":"Start time of search windows, UTC format yyyy-MM-ddTHH:mm:ss[.fffZ]","disabled":true},{"key":"end_time","value":"","description":"Start time of search windows, UTC format yyyy-MM-ddTHH:mm:ss[.fffZ]","disabled":true},{"key":"trace_id","value":"","description":"Limit search to this Trace ID","disabled":true},{"key":"app_name","value":"","description":"Limit search to this Application name","disabled":true},{"key":"workflow_name","value":"","description":"Limit search to this workflow name ","disabled":true},{"key":"workflow_type","value":"","description":"Limit search to this workflow type","disabled":true},{"key":"model_name","value":"","description":"Limit search to this model","disabled":true},{"key":"search","value":"","description":"Text to search in prompts ","disabled":true},{"key":"search_fields","value":"input,output","description":"Comma separated ist of promp fields to seach in. Supported values:\ninput: Search in input prompt\noutput: Search in response output ","disabled":true}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","enabled":true},{"key":"Date","value":"Tue, 20 Aug 2024 20:09:02 GMT","enabled":true},{"key":"Server","value":"Kestrel","enabled":true},{"key":"Transfer-Encoding","value":"chunked","enabled":true}],"cookie":[],"responseTime":null,"body":"{\n    \"prompts\": [\n        {\n            \"trace_id\": \"04a26642b20a5f347fc3fe5826ae6b9b\",\n            \"start_time\": \"2024-08-20T19:36:17.796711Z\",\n            \"end_time\": \"2024-08-20T19:36:19.070019Z\",\n            \"spans_link\": \"/api/v1/workflows/azure_openai_llama_index_2/traces/04a26642b20a5f347fc3fe5826ae6b9b/spans\",\n            \"app_name\": \"coffee_rag_azure_openAI\",\n            \"workflow_name\": \"azure_openai_llama_index_2\",\n            \"workflow_type\": \"workflow.llamaindex\",\n            \"model_name\": \"gpt-35-turbo\",\n            \"model_attributes\": {\n                \"temperature\": 0.1,\n                \"total_tokens\": 285,\n                \"prompt_tokens\": 233,\n                \"completion_tokens\": 52\n            },\n            \"input\": {\n                \"question\": \"What is an americano?\"\n            },\n            \"output\": {\n                \"response\": \"An americano is a type of coffee drink that is made by diluting an espresso shot with hot water at a 1:3 to 1:4 ratio, resulting in a drink that retains the complex flavors of espresso, but in a lighter way.\"\n            }\n        },\n        {\n            \"trace_id\": \"8cd910c80e0041e27ae822e3480881e7\",\n            \"start_time\": \"2024-08-20T19:36:10.496726Z\",\n            \"end_time\": \"2024-08-20T19:36:12.708360Z\",\n            \"spans_link\": \"/api/v1/workflows/azure_openai_llama_index_2/traces/8cd910c80e0041e27ae822e3480881e7/spans\",\n            \"app_name\": \"coffee_rag_azure_openAI\",\n            \"workflow_name\": \"azure_openai_llama_index_2\",\n            \"workflow_type\": \"workflow.llamaindex\",\n            \"model_name\": \"gpt-35-turbo\",\n            \"model_attributes\": {\n                \"temperature\": 0.1,\n                \"total_tokens\": 267,\n                \"prompt_tokens\": 232,\n                \"completion_tokens\": 35\n            },\n            \"input\": {\n                \"question\": \"What is Latte?\"\n            },\n            \"output\": {\n                \"response\": \"A latte is a type of coffee drink that typically consists of one or more shots of espresso, served in a glass or cup, and mixed with hot steamed milk.\"\n            }\n        },\n        {\n            \"trace_id\": \"d35b7205e5e890a88d112b46f6a72d31\",\n            \"start_time\": \"2024-08-20T19:35:54.787750Z\",\n            \"end_time\": \"2024-08-20T19:35:54.790751Z\",\n            \"spans_link\": \"/api/v1/workflows/None/traces/d35b7205e5e890a88d112b46f6a72d31/spans\",\n            \"app_name\": null,\n            \"workflow_name\": null,\n            \"workflow_type\": null,\n            \"model_name\": null,\n            \"model_attributes\": {},\n            \"input\": null,\n            \"exception\": {\n                \"exception.escaped\": \"False\",\n                \"exception.message\": \"cannot import name 'Span' from partially initialized module 'haystack.tracing' (most likely due to a circular import) (C:\\\\Users\\\\pmuju\\\\AppData\\\\Local\\\\Packages\\\\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\\\\LocalCache\\\\local-packages\\\\Python310\\\\site-packages\\\\haystack\\\\tracing\\\\__init__.py)\",\n                \"exception.stacktrace\": \"Traceback (most recent call last):\\n  File \\\"C:\\\\Users\\\\pmuju\\\\AppData\\\\Local\\\\Packages\\\\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\\\\LocalCache\\\\local-packages\\\\Python310\\\\site-packages\\\\opentelemetry\\\\trace\\\\__init__.py\\\", line 570, in use_span\\n    yield span\\n  File \\\"C:\\\\Users\\\\pmuju\\\\AppData\\\\Local\\\\Packages\\\\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\\\\LocalCache\\\\local-packages\\\\Python310\\\\site-packages\\\\opentelemetry\\\\sdk\\\\trace\\\\__init__.py\\\", line 1071, in start_as_current_span\\n    yield span\\n  File \\\"C:\\\\Users\\\\pmuju\\\\AppData\\\\Local\\\\Packages\\\\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\\\\LocalCache\\\\local-packages\\\\Python310\\\\site-packages\\\\haystack\\\\tracing\\\\tracer.py\\\", line 203, in _auto_configured_opentelemetry_tracer\\n    from haystack.tracing.opentelemetry import OpenTelemetryTracer\\n  File \\\"C:\\\\Users\\\\pmuju\\\\AppData\\\\Local\\\\Packages\\\\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\\\\LocalCache\\\\local-packages\\\\Python310\\\\site-packages\\\\haystack\\\\tracing\\\\opentelemetry.py\\\", line 5, in <module>\\n    from haystack.tracing import Span, Tracer\\nImportError: cannot import name 'Span' from partially initialized module 'haystack.tracing' (most likely due to a circular import) (C:\\\\Users\\\\pmuju\\\\AppData\\\\Local\\\\Packages\\\\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\\\\LocalCache\\\\local-packages\\\\Python310\\\\site-packages\\\\haystack\\\\tracing\\\\__init__.py)\\n\",\n                \"exception.type\": \"ImportError\"\n            }\n        }\n    ]\n}"}],"_postman_id":"a73a1de8-f040-4939-b144-1fa8f166ede7"},{"name":"Explore prompts to measure quality - Stage","id":"0a3d9af7-bacd-4bac-beca-991dc92c343e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://api.okahu.co/api/v1/prompts","description":"<p>Search prompt input and responses.</p>\n<p>Okahu traces capture input prompts and inference response. This API allows you to search text snippets in your applications prompt history.</p>\n","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{vault:prod-pvatokahu-apikey}}"}]},"isInherited":true,"source":{"_postman_id":"934675cd-ccfd-48d4-ade3-05585bf4939d","id":"934675cd-ccfd-48d4-ade3-05585bf4939d","name":"Okahu Personal Cloud APIs","type":"collection"}},"urlObject":{"protocol":"https","path":["api","v1","prompts"],"host":["api","okahu","co"],"query":[{"disabled":true,"description":{"content":"<p>Start time of search windows, UTC format yyyy-MM-ddTHH:mm:ss[.fffZ]</p>\n","type":"text/plain"},"key":"start_time","value":""},{"disabled":true,"description":{"content":"<p>Start time of search windows, UTC format yyyy-MM-ddTHH:mm:ss[.fffZ]</p>\n","type":"text/plain"},"key":"end_time","value":""},{"disabled":true,"description":{"content":"<p>Limit search to this Trace ID</p>\n","type":"text/plain"},"key":"trace_id","value":""},{"disabled":true,"description":{"content":"<p>Limit search to this Application name</p>\n","type":"text/plain"},"key":"app_name","value":""},{"disabled":true,"description":{"content":"<p>Limit search to this workflow name </p>\n","type":"text/plain"},"key":"workflow_name","value":""},{"disabled":true,"description":{"content":"<p>Limit search to this workflow type</p>\n","type":"text/plain"},"key":"workflow_type","value":""},{"disabled":true,"description":{"content":"<p>Limit search to this model</p>\n","type":"text/plain"},"key":"model_name","value":""},{"disabled":true,"description":{"content":"<p>Text to search in prompts </p>\n","type":"text/plain"},"key":"search","value":""},{"disabled":true,"description":{"content":"<p>Comma separated ist of promp fields to seach in. Supported values:\ninput: Search in input prompt\noutput: Search in response output </p>\n","type":"text/plain"},"key":"search_fields","value":"input,output"}],"variable":[]}},"response":[{"id":"23f439c0-94df-4f44-b47f-793b49ffd8a0","name":"Search for prompt within the store","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://api.okahu.co/api/v1/prompts","protocol":"https","host":["api","okahu","co"],"path":["api","v1","prompts"],"query":[{"key":"start_time","value":"","description":"Start time of search windows, UTC format yyyy-MM-ddTHH:mm:ss[.fffZ]","disabled":true},{"key":"end_time","value":"","description":"Start time of search windows, UTC format yyyy-MM-ddTHH:mm:ss[.fffZ]","disabled":true},{"key":"trace_id","value":"","description":"Limit search to this Trace ID","disabled":true},{"key":"app_name","value":"","description":"Limit search to this Application name","disabled":true},{"key":"workflow_name","value":"","description":"Limit search to this workflow name ","disabled":true},{"key":"workflow_type","value":"","description":"Limit search to this workflow type","disabled":true},{"key":"model_name","value":"","description":"Limit search to this model","disabled":true},{"key":"search","value":"","description":"Text to search in prompts ","disabled":true},{"key":"search_fields","value":"input,output","description":"Comma separated ist of promp fields to seach in. Supported values:\ninput: Search in input prompt\noutput: Search in response output ","disabled":true}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","enabled":true},{"key":"Date","value":"Tue, 20 Aug 2024 20:09:02 GMT","enabled":true},{"key":"Server","value":"Kestrel","enabled":true},{"key":"Transfer-Encoding","value":"chunked","enabled":true}],"cookie":[],"responseTime":null,"body":"{\n    \"prompts\": [\n        {\n            \"trace_id\": \"04a26642b20a5f347fc3fe5826ae6b9b\",\n            \"start_time\": \"2024-08-20T19:36:17.796711Z\",\n            \"end_time\": \"2024-08-20T19:36:19.070019Z\",\n            \"spans_link\": \"/api/v1/workflows/azure_openai_llama_index_2/traces/04a26642b20a5f347fc3fe5826ae6b9b/spans\",\n            \"app_name\": \"coffee_rag_azure_openAI\",\n            \"workflow_name\": \"azure_openai_llama_index_2\",\n            \"workflow_type\": \"workflow.llamaindex\",\n            \"model_name\": \"gpt-35-turbo\",\n            \"model_attributes\": {\n                \"temperature\": 0.1,\n                \"total_tokens\": 285,\n                \"prompt_tokens\": 233,\n                \"completion_tokens\": 52\n            },\n            \"input\": {\n                \"question\": \"What is an americano?\"\n            },\n            \"output\": {\n                \"response\": \"An americano is a type of coffee drink that is made by diluting an espresso shot with hot water at a 1:3 to 1:4 ratio, resulting in a drink that retains the complex flavors of espresso, but in a lighter way.\"\n            }\n        },\n        {\n            \"trace_id\": \"8cd910c80e0041e27ae822e3480881e7\",\n            \"start_time\": \"2024-08-20T19:36:10.496726Z\",\n            \"end_time\": \"2024-08-20T19:36:12.708360Z\",\n            \"spans_link\": \"/api/v1/workflows/azure_openai_llama_index_2/traces/8cd910c80e0041e27ae822e3480881e7/spans\",\n            \"app_name\": \"coffee_rag_azure_openAI\",\n            \"workflow_name\": \"azure_openai_llama_index_2\",\n            \"workflow_type\": \"workflow.llamaindex\",\n            \"model_name\": \"gpt-35-turbo\",\n            \"model_attributes\": {\n                \"temperature\": 0.1,\n                \"total_tokens\": 267,\n                \"prompt_tokens\": 232,\n                \"completion_tokens\": 35\n            },\n            \"input\": {\n                \"question\": \"What is Latte?\"\n            },\n            \"output\": {\n                \"response\": \"A latte is a type of coffee drink that typically consists of one or more shots of espresso, served in a glass or cup, and mixed with hot steamed milk.\"\n            }\n        },\n        {\n            \"trace_id\": \"d35b7205e5e890a88d112b46f6a72d31\",\n            \"start_time\": \"2024-08-20T19:35:54.787750Z\",\n            \"end_time\": \"2024-08-20T19:35:54.790751Z\",\n            \"spans_link\": \"/api/v1/workflows/None/traces/d35b7205e5e890a88d112b46f6a72d31/spans\",\n            \"app_name\": null,\n            \"workflow_name\": null,\n            \"workflow_type\": null,\n            \"model_name\": null,\n            \"model_attributes\": {},\n            \"input\": null,\n            \"exception\": {\n                \"exception.escaped\": \"False\",\n                \"exception.message\": \"cannot import name 'Span' from partially initialized module 'haystack.tracing' (most likely due to a circular import) (C:\\\\Users\\\\pmuju\\\\AppData\\\\Local\\\\Packages\\\\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\\\\LocalCache\\\\local-packages\\\\Python310\\\\site-packages\\\\haystack\\\\tracing\\\\__init__.py)\",\n                \"exception.stacktrace\": \"Traceback (most recent call last):\\n  File \\\"C:\\\\Users\\\\pmuju\\\\AppData\\\\Local\\\\Packages\\\\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\\\\LocalCache\\\\local-packages\\\\Python310\\\\site-packages\\\\opentelemetry\\\\trace\\\\__init__.py\\\", line 570, in use_span\\n    yield span\\n  File \\\"C:\\\\Users\\\\pmuju\\\\AppData\\\\Local\\\\Packages\\\\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\\\\LocalCache\\\\local-packages\\\\Python310\\\\site-packages\\\\opentelemetry\\\\sdk\\\\trace\\\\__init__.py\\\", line 1071, in start_as_current_span\\n    yield span\\n  File \\\"C:\\\\Users\\\\pmuju\\\\AppData\\\\Local\\\\Packages\\\\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\\\\LocalCache\\\\local-packages\\\\Python310\\\\site-packages\\\\haystack\\\\tracing\\\\tracer.py\\\", line 203, in _auto_configured_opentelemetry_tracer\\n    from haystack.tracing.opentelemetry import OpenTelemetryTracer\\n  File \\\"C:\\\\Users\\\\pmuju\\\\AppData\\\\Local\\\\Packages\\\\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\\\\LocalCache\\\\local-packages\\\\Python310\\\\site-packages\\\\haystack\\\\tracing\\\\opentelemetry.py\\\", line 5, in <module>\\n    from haystack.tracing import Span, Tracer\\nImportError: cannot import name 'Span' from partially initialized module 'haystack.tracing' (most likely due to a circular import) (C:\\\\Users\\\\pmuju\\\\AppData\\\\Local\\\\Packages\\\\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\\\\LocalCache\\\\local-packages\\\\Python310\\\\site-packages\\\\haystack\\\\tracing\\\\__init__.py)\\n\",\n                \"exception.type\": \"ImportError\"\n            }\n        }\n    ]\n}"}],"_postman_id":"0a3d9af7-bacd-4bac-beca-991dc92c343e"}],"id":"75654097-2616-406c-8e10-6e090e4c6276","description":"<p>APIs to observe application and infrastructure traces, metrics, and prompts. These endpoints provide:</p>\n<ul>\n<li><p>Access to application and infrastructure traces</p>\n</li>\n<li><p>Component-level metrics (CPU, memory, performance)</p>\n</li>\n<li><p>Prompt exploration and quality measurement</p>\n</li>\n<li><p>Real-time observability data for your AI applications</p>\n</li>\n</ul>\n<p>Use these APIs to monitor your application's health, performance, and behavior in production.</p>\n","_postman_id":"75654097-2616-406c-8e10-6e090e4c6276","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{vault:prod-pvatokahu-apikey}}"}]},"isInherited":true,"source":{"_postman_id":"934675cd-ccfd-48d4-ade3-05585bf4939d","id":"934675cd-ccfd-48d4-ade3-05585bf4939d","name":"Okahu Personal Cloud APIs","type":"collection"}}},{"name":"Understand KPIs","item":[{"name":"Understand performance and reliability","id":"06149831-63de-4732-ab26-d9ce7253251d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://api.okahu.ai/api/v1/insights/apps/{{application}}","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{vault:prod-pvatokahu-apikey}}"}]},"isInherited":true,"source":{"_postman_id":"934675cd-ccfd-48d4-ade3-05585bf4939d","id":"934675cd-ccfd-48d4-ade3-05585bf4939d","name":"Okahu Personal Cloud APIs","type":"collection"}},"urlObject":{"protocol":"https","path":["api","v1","insights","apps","{{application}}"],"host":["api","okahu","ai"],"query":[],"variable":[]}},"response":[],"_postman_id":"06149831-63de-4732-ab26-d9ce7253251d"}],"id":"98496f72-3365-40c1-b8a6-d43261ed19e7","description":"<p>APIs to examine prompts and inference</p>\n","_postman_id":"98496f72-3365-40c1-b8a6-d43261ed19e7","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{vault:prod-pvatokahu-apikey}}"}]},"isInherited":true,"source":{"_postman_id":"934675cd-ccfd-48d4-ade3-05585bf4939d","id":"934675cd-ccfd-48d4-ade3-05585bf4939d","name":"Okahu Personal Cloud APIs","type":"collection"}}}],"auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{vault:prod-pvatokahu-apikey}}"}]}},"event":[{"listen":"prerequest","script":{"id":"b27c30c5-0eee-4d9c-b452-a0e7c61cfc0c","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"382ec0e6-f239-49e0-b44d-a2c3fc041983","type":"text/javascript","exec":[""]}}]}