Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
OpenDAS
text-generation-inference
Commits
f874c478
Unverified
Commit
f874c478
authored
Mar 02, 2023
by
OlivierDehaene
Committed by
GitHub
Mar 02, 2023
Browse files
feat(router): add api-inference headers (#91)
parent
4e685d90
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
26 additions
and
4 deletions
+26
-4
router/src/server.rs
router/src/server.rs
+26
-4
No files found.
router/src/server.rs
View file @
f874c478
...
...
@@ -8,7 +8,7 @@ use crate::{
use
axum
::
extract
::
Extension
;
use
axum
::
http
::{
HeaderMap
,
Method
,
StatusCode
};
use
axum
::
response
::
sse
::{
Event
,
KeepAlive
,
Sse
};
use
axum
::
response
::
IntoResponse
;
use
axum
::
response
::
{
IntoResponse
,
Response
}
;
use
axum
::
routing
::{
get
,
post
};
use
axum
::{
http
,
Json
,
Router
};
use
axum_tracing_opentelemetry
::
opentelemetry_tracing_layer
;
...
...
@@ -32,7 +32,7 @@ async fn compat_generate(
default_return_full_text
:
Extension
<
bool
>
,
infer
:
Extension
<
Infer
>
,
req
:
Json
<
CompatGenerateRequest
>
,
)
->
Result
<
impl
Into
Response
,
(
StatusCode
,
Json
<
ErrorResponse
>
)
>
{
)
->
Result
<
Response
,
(
StatusCode
,
Json
<
ErrorResponse
>
)
>
{
let
mut
req
=
req
.0
;
// default return_full_text given the pipeline_tag
...
...
@@ -116,6 +116,7 @@ async fn generate(
let
span
=
tracing
::
Span
::
current
();
let
start_time
=
Instant
::
now
();
let
compute_characters
=
req
.0
.inputs
.chars
()
.count
();
let
mut
add_prompt
=
None
;
if
req
.0
.parameters.return_full_text
.unwrap_or
(
false
)
{
add_prompt
=
Some
(
req
.0
.inputs
.clone
());
...
...
@@ -147,6 +148,15 @@ async fn generate(
// Headers
let
mut
headers
=
HeaderMap
::
new
();
headers
.insert
(
"x-compute-type"
,
"gpu+optimized"
.parse
()
.unwrap
());
headers
.insert
(
"x-compute-time"
,
total_time
.as_millis
()
.to_string
()
.parse
()
.unwrap
(),
);
headers
.insert
(
"x-compute-characters"
,
compute_characters
.to_string
()
.parse
()
.unwrap
(),
);
headers
.insert
(
"x-total-time"
,
total_time
.as_millis
()
.to_string
()
.parse
()
.unwrap
(),
...
...
@@ -239,10 +249,22 @@ async fn generate(
async
fn
generate_stream
(
infer
:
Extension
<
Infer
>
,
req
:
Json
<
GenerateRequest
>
,
)
->
Sse
<
impl
Stream
<
Item
=
Result
<
Event
,
Infallible
>>>
{
)
->
(
HeaderMap
,
Sse
<
impl
Stream
<
Item
=
Result
<
Event
,
Infallible
>>>
,
)
{
let
span
=
tracing
::
Span
::
current
();
let
start_time
=
Instant
::
now
();
let
compute_characters
=
req
.0
.inputs
.chars
()
.count
();
let
mut
headers
=
HeaderMap
::
new
();
headers
.insert
(
"x-compute-type"
,
"gpu+optimized"
.parse
()
.unwrap
());
headers
.insert
(
"x-compute-characters"
,
compute_characters
.to_string
()
.parse
()
.unwrap
(),
);
let
stream
=
async_stream
::
stream!
{
// Inference
let
mut
end_reached
=
false
;
...
...
@@ -360,7 +382,7 @@ async fn generate_stream(
}
};
Sse
::
new
(
stream
)
.keep_alive
(
KeepAlive
::
default
())
(
headers
,
Sse
::
new
(
stream
)
.keep_alive
(
KeepAlive
::
default
())
)
}
/// Prometheus metrics scrape endpoint
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment