|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<!DOCTYPE html> |
|
<html lang="en"> |
|
|
|
<head> |
|
<meta charset="UTF-8"> |
|
<meta name="viewport" content="width=device-width, initial-scale=1.0"> |
|
<title>TGI API</title> |
|
|
|
<link rel="icon" type="image/svg+xml" href="https://icons.getbootstrap.com/assets/icons/cloud-lightning-rain.svg"> |
|
|
|
<link href="https://cdn.jsdelivr.net/npm/bootstrap-icons/font/bootstrap-icons.min.css" rel="stylesheet"> |
|
<link href="https://cdn.jsdelivr.net/npm/vuetify/dist/vuetify.min.css" rel="stylesheet"> |
|
<link href="https://cdn.jsdelivr.net/npm/swagger-ui/dist/swagger-ui.min.css" rel="stylesheet"> |
|
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.global.min.js"></script> |
|
<script src="https://cdn.jsdelivr.net/npm/vuetify/dist/vuetify.min.js"></script> |
|
<script src="https://cdn.jsdelivr.net/npm/swagger-ui/dist/swagger-ui-bundle.js" crossorigin></script> |
|
|
|
<style> |
|
.menu { |
|
z-index: 20; |
|
position: fixed; |
|
right: 16px; |
|
} |
|
|
|
.toc { |
|
min-width: max(150px, 15vw); |
|
max-width: 80vw; |
|
min-height: 20vh; |
|
max-height: 90vh; |
|
margin-bottom: min(50px, 5vh); |
|
} |
|
</style> |
|
</head> |
|
|
|
<body> |
|
<div id="app"> |
|
<v-app> |
|
<v-container> |
|
<a href="https://github.com/k8rw/openapi-wiki" class="github-corner" |
|
aria-label="View source on GitHub"> |
|
<div style="position: relative; z-index: 10;"> |
|
<svg width="80" height="80" viewBox="0 0 250 250" |
|
style="fill:#151513; color:#fff; position: absolute; top: 0; border: 0; left: 0; transform: scale(-1, 1);" |
|
aria-hidden="true"> |
|
<path d="M0,0 L115,115 L130,115 L142,142 L250,250 L250,0 Z"></path> |
|
<path |
|
d="M128.3,109.0 C113.8,99.7 119.0,89.6 119.0,89.6 C122.0,82.7 120.5,78.6 120.5,78.6 C119.2,72.0 123.4,76.3 123.4,76.3 C127.3,80.9 125.5,87.3 125.5,87.3 C122.9,97.6 130.6,101.9 134.4,103.2" |
|
fill="currentColor" style="transform-origin: 130px 106px;" class="octo-arm"></path> |
|
<path |
|
d="M115.0,115.0 C114.9,115.1 118.7,116.5 119.8,115.4 L133.7,101.6 C136.9,99.2 139.9,98.4 142.2,98.6 C133.8,88.0 127.5,74.4 143.8,58.0 C148.5,53.4 154.0,51.2 159.7,51.0 C160.3,49.4 163.2,43.6 171.4,40.1 C171.4,40.1 176.1,42.5 178.8,56.2 C183.1,58.6 187.2,61.8 190.9,65.4 C194.5,69.0 197.7,73.2 200.1,77.6 C213.8,80.2 216.3,84.9 216.3,84.9 C212.7,93.1 206.9,96.0 205.4,96.6 C205.1,102.4 203.0,107.8 198.3,112.5 C181.9,128.9 168.3,122.5 157.7,114.1 C157.9,116.9 156.7,120.9 152.7,124.9 L141.0,136.5 C139.8,137.7 141.6,141.9 141.8,141.8 Z" |
|
fill="currentColor" class="octo-body"></path> |
|
</svg> |
|
</div> |
|
</a> |
|
<v-menu transition="slide-y-transition"> |
|
<template v-slot:activator="{ props }"> |
|
<v-btn size="50" v-bind="props" class="menu" style="top:16px;"> |
|
<h3>V</h3> |
|
</v-btn> |
|
</template> |
|
|
|
<v-list :items="apiRelease" v-model:selected=ghRelease nav mandatory> |
|
</v-list> |
|
</v-menu> |
|
<v-card style="padding: 0 15px 10px 15px;"> |
|
<div id="swagger-ui"></div> |
|
</v-card> |
|
</v-container> |
|
</v-app> |
|
</div> |
|
|
|
<script setup lang="ts"> |
|
const { createApp, ref, onMounted, watch } = Vue |
|
const { createVuetify } = Vuetify |
|
|
|
const app = createApp({ |
|
setup() { |
|
|
|
const ghUrl = ref("https://cdn.jsdelivr.net/gh/huggingface/text-generation-inference"); |
|
const ghPath = ref("/docs"); |
|
const ghFile = ref(["openapi"]); |
|
const ghFileExt = ref(".json"); |
|
const ghRelease = ref(["main"]); |
|
|
|
onMounted(() => { |
|
updateUI(); |
|
}); |
|
|
|
watch([ghUrl, ghPath, ghFile, ghFileExt, ghRelease], (newValue, oldValue) => { |
|
updateUI(); |
|
}); |
|
|
|
const updateUI = () => { |
|
SwaggerUIBundle({ |
|
dom_id: '#swagger-ui', |
|
url: ghUrl.value + '@' + ghRelease.value + ghPath.value + '/' + ghFile.value + ghFileExt.value, |
|
layout: 'BaseLayout', |
|
|
|
}); |
|
} |
|
|
|
return { |
|
ghRelease, |
|
apiRelease: [{ |
|
"title": "Latest", |
|
"value": "main" |
|
}, { |
|
"title": "V0.9.4", |
|
"value": "v0.9.4" |
|
}] |
|
}; |
|
} |
|
}) |
|
|
|
const vuetify = createVuetify() |
|
app.use(vuetify).mount('#app') |
|
|
|
</script> |
|
</body> |
|
|
|
</html> |
|
|