evalbench/generators/models/claude.py (32 lines of code) (raw):
import logging
from anthropic import AnthropicVertex
from util.gcp import get_gcp_project, get_gcp_region
from .generator import QueryGenerator
class ClaudeGenerator(QueryGenerator):
"""Generate queries using the Anthropic Claude model via Vertex AI."""
def __init__(self, querygenerator_config):
super().__init__(querygenerator_config)
self.name = "gcp_vertex_claude"
self.project_id = get_gcp_project(querygenerator_config.get("gcp_project_id"))
self.region = get_gcp_region(querygenerator_config.get("gcp_region"))
self.model_id = querygenerator_config["vertex_model"]
self.base_prompt = querygenerator_config["base_prompt"]
self.max_tokens = querygenerator_config["max_tokens"]
self.client = AnthropicVertex(region=self.region, project_id=self.project_id)
def generate_internal(self, prompt):
try:
response = self.client.messages.create(
model=self.model_id,
messages=[
{
"role": "user",
"content": self.base_prompt + prompt,
}
],
max_tokens=self.max_tokens,
temperature=0,
)
r = response.content[0].text if response.content else ""
return r
except Exception as e:
logging.error(f"Error generating response from Claude: {e}")
return None