@@ -376,6 +376,7 @@ impl Service {
376
376
commit : String ,
377
377
previous : Option < String > ,
378
378
task_id : String ,
379
+ api_key : String ,
379
380
) -> Result < ( ) , StartIndexError > {
380
381
let content_endpoint = self . content_endpoint . clone ( ) ;
381
382
if let Some ( content_endpoint) = content_endpoint {
@@ -393,7 +394,7 @@ impl Service {
393
394
. chunks ( 100 ) ;
394
395
let ( id, hnsw) = self
395
396
. process_operation_chunks (
396
- opstream, domain, commit, previous, & index_id, & task_id,
397
+ opstream, domain, commit, previous, & index_id, & task_id, & api_key ,
397
398
)
398
399
. await ;
399
400
self . set_index ( id, hnsw. into ( ) ) . await ;
@@ -445,6 +446,7 @@ impl Service {
445
446
previous : Option < String > ,
446
447
index_id : & str ,
447
448
task_id : & str ,
449
+ api_key : & str ,
448
450
) -> ( String , HnswIndex ) {
449
451
let id = create_index_name ( & domain, & commit) ;
450
452
let mut hnsw = self
@@ -461,7 +463,7 @@ impl Service {
461
463
& domain. clone ( ) ,
462
464
& self . vector_store ,
463
465
structs,
464
- & self . api_key ,
466
+ api_key,
465
467
)
466
468
. await ;
467
469
hnsw = start_indexing_from_operations ( hnsw, new_ops) . unwrap ( ) ;
@@ -482,13 +484,34 @@ impl Service {
482
484
previous,
483
485
} ) => {
484
486
let task_id = Service :: generate_task ( ) ;
485
- self . set_task_status ( task_id. clone ( ) , TaskStatus :: Pending ( 0.0 ) )
486
- . await ;
487
- match self . start_indexing ( domain, commit, previous, task_id. clone ( ) ) {
488
- Ok ( ( ) ) => Ok ( Response :: builder ( ) . body ( task_id. into ( ) ) . unwrap ( ) ) ,
489
- Err ( e) => Ok ( Response :: builder ( )
487
+ let headers = req. headers ( ) ;
488
+ let openai_key = headers. get ( "TERMINUSDB_VECTOR_API_KEY" ) ;
489
+ match openai_key {
490
+ Some ( openai_key) => {
491
+ let openai_key = String :: from_utf8 ( openai_key. as_bytes ( ) . to_vec ( ) ) . unwrap ( ) ;
492
+ self . set_task_status ( task_id. clone ( ) , TaskStatus :: Pending ( 0.0 ) )
493
+ . await ;
494
+ match self . start_indexing (
495
+ domain,
496
+ commit,
497
+ previous,
498
+ task_id. clone ( ) ,
499
+ openai_key,
500
+ ) {
501
+ Ok ( ( ) ) => Ok ( Response :: builder ( ) . body ( task_id. into ( ) ) . unwrap ( ) ) ,
502
+ Err ( e) => Ok ( Response :: builder ( )
503
+ . status ( 400 )
504
+ . body ( e. to_string ( ) . into ( ) )
505
+ . unwrap ( ) ) ,
506
+ }
507
+ }
508
+ None => Ok ( Response :: builder ( )
490
509
. status ( 400 )
491
- . body ( e. to_string ( ) . into ( ) )
510
+ . body (
511
+ "No API key supplied in header (TERMINUSDB_VECTOR_API_KEY)"
512
+ . to_string ( )
513
+ . into ( ) ,
514
+ )
492
515
. unwrap ( ) ) ,
493
516
}
494
517
}
0 commit comments