Skip to content

Commit b7d936b

Browse files
committed
Update code based on review comments
1 parent 6de72cf commit b7d936b

File tree

9 files changed

+26
-42
lines changed

9 files changed

+26
-42
lines changed

README.md

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -91,13 +91,15 @@ curl -X POST http://localhost:8080/invocations \
9191
-H "Content-Type: application/json" \
9292
-d '{"input": {"prompt": "Hello", "conversation_id": "<conversation_id>"}}'
9393

94-
curl -X POST http://localhost:8080/api/v1/feedback \
94+
curl -X POST http://localhost:8080/api/v1/invocations \
9595
-H "Content-Type: application/json" \
9696
-d '{
97-
"run_id": "<run-id>",
98-
"session_id": "<session-id>",
99-
"score": 1.0,
100-
"comment": "Great response!"
97+
"feedback": {
98+
"run_id": "<run-id>",
99+
"session_id": "<session-id>",
100+
"score": 1.0,
101+
"comment": "Great response!"
102+
}
101103
}'
102104

103105

cx-agent-backend/src/domain/services/agent_service.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ class AgentRequest:
2424
user_id: str
2525
model: str
2626
session_id: str | None = None
27+
trace_id: str | None = None
2728

2829

2930
@dataclass(frozen=True)

cx-agent-backend/src/domain/services/conversation_service.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@ async def send_message(
7272
user_id=conversation.user_id,
7373
model=model,
7474
session_id=str(conversation.id),
75+
trace_id=None, # Can be set from FastAPI layer
7576
)
7677
agent_response = await self._agent_service.process_request(agent_request)
7778

@@ -126,7 +127,9 @@ async def log_feedback(self, user_id: str, session_id: str, message_id: str, sco
126127

127128
try:
128129

129-
logger.info("[FEEDBACK] Langfuse config: %s", self._langfuse_config)
130+
logger.info("[FEEDBACK] Langfuse config - enabled: %s, host: %s",
131+
self._langfuse_config.get("enabled"),
132+
self._langfuse_config.get("host"))
130133

131134
if self._langfuse_config.get("enabled"):
132135
logger.info("[FEEDBACK] Langfuse is enabled, setting environment variables")
@@ -152,5 +155,5 @@ async def log_feedback(self, user_id: str, session_id: str, message_id: str, sco
152155
logger.info("[FEEDBACK] Successfully created score: %s", result)
153156
else:
154157
logger.info("[FEEDBACK] Langfuse is not enabled in config")
155-
except Exception:
156-
logger.exception("[FEEDBACK] Failed to log feedback to Langfuse")
158+
except Exception as e:
159+
logger.error(f"[FEEDBACK] Failed to log feedback to Langfuse: {e}")

cx-agent-backend/src/infrastructure/adapters/langgraph_agent_service.py

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
from langchain_core.messages import AIMessage, HumanMessage
44
from langchain_core.runnables import RunnableConfig
55
import os
6-
import base64
76
import logging
87
from langgraph.prebuilt import create_react_agent
98
from langfuse import get_client, Langfuse
@@ -84,6 +83,14 @@ async def process_request(self, request: AgentRequest) -> AgentResponse:
8483
request.agent_type,
8584
)
8685

86+
# Use trace_id from request if provided, otherwise create one
87+
langfuse = None
88+
predefined_trace_id = getattr(request, 'trace_id', None)
89+
if self._langfuse_config.get("enabled"):
90+
langfuse = get_client()
91+
if not predefined_trace_id:
92+
predefined_trace_id = Langfuse.create_trace_id(seed=request.session_id)
93+
8794
# Check input guardrails if enabled
8895
if self._guardrail_service and request.messages:
8996
last_user_message = None
@@ -128,8 +135,6 @@ async def process_request(self, request: AgentRequest) -> AgentResponse:
128135
os.environ["LANGFUSE_PUBLIC_KEY"] = self._langfuse_config.get("public_key")
129136
os.environ["LANGFUSE_HOST"] = self._langfuse_config.get("host")
130137

131-
langfuse = get_client()
132-
predefined_trace_id = Langfuse.create_trace_id(seed=request.session_id)
133138
trace_id = predefined_trace_id
134139

135140
langfuse_handler = CallbackHandler()
@@ -145,7 +150,7 @@ async def process_request(self, request: AgentRequest) -> AgentResponse:
145150

146151
config = RunnableConfig(
147152
configurable={
148-
"thread_id": f"{request.user_id}_{request.session_id}",
153+
"thread_id": f"{request.session_id}",
149154
"user_id": request.user_id,
150155
},
151156
callbacks=[langfuse_handler],

cx-agent-backend/src/infrastructure/adapters/openai_llm_service.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
from langchain_core.messages import AIMessage, HumanMessage, SystemMessage
44
from langchain_openai import ChatOpenAI
55

6-
from domain.entities.conversation import Message, MessageRole
6+
from domain.entities.conversation import MessageRole
77
from domain.services.llm_service import LLMRequest, LLMResponse, LLMService
88

99

cx-agent-backend/src/infrastructure/adapters/tools.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,12 @@
33
import boto3
44
from langchain_aws import AmazonKnowledgeBasesRetriever
55
from langchain_core.tools import tool
6-
from langchain.tools import tool as langchain_tool
76
import logging
87
import json
98

109
from infrastructure.config.settings import settings
1110
from infrastructure.aws.secret_reader import AWSSecretsReader
1211
from infrastructure.aws.parameter_store_reader import AWSParameterStoreReader
13-
import os
1412

1513
logger = logging.getLogger(__name__)
1614

cx-agent-backend/src/main.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
import structlog
44
from fastapi import FastAPI, Request
5-
from fastapi.middleware.cors import CORSMiddleware
65

76
from infrastructure.config.container import Container
87
from infrastructure.config.settings import settings
@@ -60,7 +59,7 @@ async def ping():
6059

6160
@app.post("/invocations")
6261
async def invocations(request: dict, http_request: Request):
63-
from fastapi import HTTPException, Request
62+
from fastapi import HTTPException
6463
from presentation.api.conversation_router import send_message
6564
from presentation.schemas.conversation_schemas import SendMessageRequest
6665
from datetime import datetime

cx-agent-backend/src/presentation/api/conversation_router.py

Lines changed: 1 addition & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,6 @@
1111
from presentation.schemas.conversation_schemas import (
1212
ConversationSchema,
1313
CreateConversationRequest,
14-
FeedbackRequest,
15-
FeedbackResponse,
1614
MessageSchema,
1715
SendMessageRequest,
1816
SendMessageResponse,
@@ -154,25 +152,4 @@ async def get_user_conversations(
154152
return [_conversation_to_schema(conv) for conv in conversations]
155153

156154

157-
@router.post("/feedback", response_model=FeedbackResponse)
158-
@inject
159-
async def submit_feedback(
160-
request: FeedbackRequest,
161-
conversation_service: ConversationService = Depends(
162-
Provide[Container.conversation_service]
163-
),
164-
) -> FeedbackResponse:
165-
"""Submit user feedback for a message."""
166-
try:
167-
# Convert score to 1/0 format
168-
feedback_score = 1 if request.score > 0.5 else 0
169-
170-
# Log feedback to Langfuse
171-
await conversation_service.log_feedback("default_user", request.session_id, request.run_id, feedback_score, request.comment)
172-
173-
return FeedbackResponse()
174-
except Exception as e:
175-
raise HTTPException(
176-
status_code=status.HTTP_500_INTERNAL_SERVER_ERROR,
177-
detail=f"Failed to submit feedback: {str(e)}",
178-
)
155+

cx-agent-frontend/src/services/agentcore_client.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
import urllib.parse
55
import json
66
import uuid
7-
import streamlit as st
87

98

109
class AgentCoreClient:

0 commit comments

Comments
 (0)