11use std:: collections:: HashMap ;
22
3- use crate :: config:: { Config , ModelName } ;
3+ use crate :: client :: config:: { Config , ModelName } ;
44use crate :: provider:: provider;
55use crate :: router:: router;
6+ use crate :: types:: error:: OpenAIError ;
7+ use crate :: types:: responses:: { CreateResponse , Response } ;
68
79pub struct Client {
810 providers : HashMap < ModelName , Box < dyn provider:: Provider > > ,
@@ -28,8 +30,8 @@ impl Client {
2830
2931 pub async fn create_response (
3032 & mut self ,
31- request : provider :: CreateResponseReq ,
32- ) -> Result < provider :: CreateResponseRes , provider :: APIError > {
33+ request : CreateResponse ,
34+ ) -> Result < Response , OpenAIError > {
3335 let candidate = self . router . sample ( & request) ;
3436 let provider = self . providers . get ( & candidate) . unwrap ( ) ;
3537 provider. create_response ( request) . await
@@ -39,7 +41,7 @@ impl Client {
3941#[ cfg( test) ]
4042mod tests {
4143 use super :: * ;
42- use crate :: config:: { Config , ModelConfig , RoutingMode } ;
44+ use crate :: client :: config:: { Config , ModelConfig , RoutingMode } ;
4345 use dotenvy:: from_filename;
4446
4547 #[ test]
@@ -71,14 +73,14 @@ mod tests {
7173 config: Config :: builder( )
7274 . routing_mode( RoutingMode :: WRR )
7375 . models( vec![
74- crate :: config:: ModelConfig :: builder( )
76+ crate :: client :: config:: ModelConfig :: builder( )
7577 . name( "model_a" . to_string( ) )
7678 . provider( Some ( "openai" . to_string( ) ) )
7779 . base_url( Some ( "https://api.openai.com/v1" . to_string( ) ) )
7880 . weight( 1 )
7981 . build( )
8082 . unwrap( ) ,
81- crate :: config:: ModelConfig :: builder( )
83+ crate :: client :: config:: ModelConfig :: builder( )
8284 . name( "model_b" . to_string( ) )
8385 . provider( Some ( "openai" . to_string( ) ) )
8486 . base_url( Some ( "https://api.openai.com/v1" . to_string( ) ) )
0 commit comments