Some checks failed
Remove old artifacts / remove-old-artifacts (push) Has been cancelled
51 lines
1.8 KiB
Python
51 lines
1.8 KiB
Python
from fastapi import APIRouter
|
|
from pydantic import BaseModel, Field
|
|
from app.component.model_validation import create_agent
|
|
|
|
|
|
router = APIRouter(tags=["model"])
|
|
|
|
|
|
class ValidateModelRequest(BaseModel):
|
|
model_platform: str = Field("OPENAI", description="Model platform")
|
|
model_type: str = Field("GPT_4O_MINI", description="Model type")
|
|
api_key: str | None = Field(None, description="API key")
|
|
url: str | None = Field(None, description="Model URL")
|
|
model_config_dict: dict | None = Field(None, description="Model config dict")
|
|
extra_params: dict | None = Field(None, description="Extra model parameters")
|
|
|
|
|
|
class ValidateModelResponse(BaseModel):
|
|
is_valid: bool = Field(..., description="Is valid")
|
|
is_tool_calls: bool = Field(..., description="Is tool call used")
|
|
message: str = Field(..., description="Message")
|
|
|
|
|
|
@router.post("/model/validate")
|
|
async def validate_model(request: ValidateModelRequest):
|
|
try:
|
|
extra = request.extra_params or {}
|
|
|
|
agent = create_agent(
|
|
request.model_platform,
|
|
request.model_type,
|
|
api_key=request.api_key,
|
|
url=request.url,
|
|
model_config_dict=request.model_config_dict,
|
|
**extra,
|
|
)
|
|
response = agent.step(
|
|
input_message="""
|
|
Get the content of https://www.camel-ai.org,
|
|
you must use the get_website_content tool to get the content ,
|
|
i just want to verify the get_website_content tool is working
|
|
"""
|
|
)
|
|
except Exception as e:
|
|
return ValidateModelResponse(is_valid=False, is_tool_calls=False, message=str(e))
|
|
return ValidateModelResponse(
|
|
is_valid=True if response else False,
|
|
is_tool_calls=response.info["tool_calls"][0].result == "Welcome to CAMEL AI!",
|
|
message="",
|
|
)
|