Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
442 changes: 235 additions & 207 deletions config/config.yaml

Large diffs are not rendered by default.

8 changes: 4 additions & 4 deletions config/envoy.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ static_resources:
upstream_local_address: "%UPSTREAM_LOCAL_ADDRESS%"
request_id: "%REQ(X-REQUEST-ID)%"
selected_model: "%REQ(X-SELECTED-MODEL)%"
selected_endpoint: "%REQ(X-GATEWAY-DESTINATION-ENDPOINT)%"
selected_endpoint: "%REQ(X-SEMANTIC-DESTINATION-ENDPOINT)%"
route_config:
name: local_route
virtual_hosts:
Expand All @@ -42,7 +42,7 @@ static_resources:
- match:
prefix: "/"
headers:
- name: "x-gateway-destination-endpoint"
- name: "x-semantic-destination-endpoint"
string_match:
exact: "endpoint1"
route:
Expand All @@ -51,7 +51,7 @@ static_resources:
- match:
prefix: "/"
headers:
- name: "x-gateway-destination-endpoint"
- name: "x-semantic-destination-endpoint"
string_match:
exact: "endpoint2"
route:
Expand All @@ -60,7 +60,7 @@ static_resources:
- match:
prefix: "/"
headers:
- name: "x-gateway-destination-endpoint"
- name: "x-semantic-destination-endpoint"
string_match:
exact: "endpoint3"
route:
Expand Down
8 changes: 5 additions & 3 deletions src/semantic-router/pkg/config/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -213,9 +213,11 @@ type ModelScore struct {
}

type Category struct {
Name string `yaml:"name"`
Description string `yaml:"description,omitempty"`
ModelScores []ModelScore `yaml:"model_scores"`
Name string `yaml:"name"`
Description string `yaml:"description,omitempty"`
UseReasoning bool `yaml:"use_reasoning"`
ReasoningDescription string `yaml:"reasoning_description,omitempty"`
ModelScores []ModelScore `yaml:"model_scores"`
}

var (
Expand Down
6 changes: 3 additions & 3 deletions src/semantic-router/pkg/extproc/endpoint_selection_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ var _ = Describe("Endpoint Selection", func() {
var modelHeaderFound bool

for _, header := range headerMutation.SetHeaders {
if header.Header.Key == "x-gateway-destination-endpoint" {
if header.Header.Key == "x-semantic-destination-endpoint" {
endpointHeaderFound = true
// Should be one of the configured endpoints
Expect(header.Header.Value).To(BeElementOf("test-endpoint1", "test-endpoint2"))
Expand Down Expand Up @@ -139,7 +139,7 @@ var _ = Describe("Endpoint Selection", func() {
var selectedEndpoint string

for _, header := range headerMutation.SetHeaders {
if header.Header.Key == "x-gateway-destination-endpoint" {
if header.Header.Key == "x-semantic-destination-endpoint" {
endpointHeaderFound = true
selectedEndpoint = header.Header.Value
break
Expand Down Expand Up @@ -198,7 +198,7 @@ var _ = Describe("Endpoint Selection", func() {
var selectedEndpoint string

for _, header := range headerMutation.SetHeaders {
if header.Header.Key == "x-gateway-destination-endpoint" {
if header.Header.Key == "x-semantic-destination-endpoint" {
endpointHeaderFound = true
selectedEndpoint = header.Header.Value
break
Expand Down
14 changes: 12 additions & 2 deletions src/semantic-router/pkg/extproc/processor.go
Original file line number Diff line number Diff line change
Expand Up @@ -52,22 +52,30 @@ func (r *OpenAIRouter) Process(stream ext_proc.ExternalProcessor_ProcessServer)

switch v := req.Request.(type) {
case *ext_proc.ProcessingRequest_RequestHeaders:
log.Printf("DEBUG: Processing request headers")
response, err := r.handleRequestHeaders(v, ctx)
if err != nil {
log.Printf("ERROR: handleRequestHeaders failed: %v", err)
return err
}
if err := sendResponse(stream, response, "header"); err != nil {
if err := sendResponse(stream, response, "request header"); err != nil {
log.Printf("ERROR: sendResponse for headers failed: %v", err)
return err
}
log.Printf("DEBUG: Request headers processed successfully")

case *ext_proc.ProcessingRequest_RequestBody:
log.Printf("DEBUG: Processing request body - THIS IS WHERE ROUTING HAPPENS")
response, err := r.handleRequestBody(v, ctx)
if err != nil {
log.Printf("ERROR: handleRequestBody failed: %v", err)
return err
}
if err := sendResponse(stream, response, "body"); err != nil {
if err := sendResponse(stream, response, "request body"); err != nil {
log.Printf("ERROR: sendResponse for body failed: %v", err)
return err
}
log.Printf("DEBUG: Request body processed successfully")

case *ext_proc.ProcessingRequest_ResponseHeaders:
response, err := r.handleResponseHeaders(v)
Expand Down Expand Up @@ -105,5 +113,7 @@ func (r *OpenAIRouter) Process(stream ext_proc.ExternalProcessor_ProcessServer)
return err
}
}

log.Printf("DEBUG: Finished processing message, continuing to next...")
}
}
Loading
Loading