웹소켓 연결 완료
This commit is contained in:
@@ -10,15 +10,18 @@ logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class GeminiClient:
|
||||
"""Gemini AI 클라이언트 (ClaudeClient와 동일한 인터페이스)"""
|
||||
"""Gemini AI 클라이언트 (최신 google-genai SDK 버전)"""
|
||||
|
||||
def __init__(self):
|
||||
if not settings.GEMINI_API_KEY:
|
||||
raise ValueError("GEMINI_API_KEY is not set")
|
||||
genai.configure(api_key=settings.GEMINI_API_KEY)
|
||||
|
||||
self.model = genai.GenerativeModel(settings.GEMINI_MODEL)
|
||||
self.generate_config = types.GenerateContentConfig(
|
||||
|
||||
# 최신 SDK에서는 Client 객체를 생성하여 사용합니다.
|
||||
self.client = genai.Client(api_key=settings.GEMINI_API_KEY)
|
||||
self.model_id = settings.GEMINI_MODEL # 예: 'gemini-2.0-flash'
|
||||
|
||||
# GenerationConfig 설정
|
||||
self.config = types.GenerateContentConfig(
|
||||
max_output_tokens=settings.MAX_TOKENS,
|
||||
temperature=settings.TEMPERATURE,
|
||||
)
|
||||
@@ -31,16 +34,23 @@ class GeminiClient:
|
||||
) -> Dict[str, Any]:
|
||||
"""Gemini를 통한 분석 실행"""
|
||||
try:
|
||||
model_with_system_prompt = genai.GenerativeModel(
|
||||
model_name=self.model.model_name,
|
||||
system_instruction=system_prompt
|
||||
# 최신 SDK에서는 별도의 모델 객체 생성 없이 client.models.generate_content를 사용합니다.
|
||||
# system_instruction을 config에 포함시켜 보냅니다.
|
||||
config_with_system = types.GenerateContentConfig(
|
||||
system_instruction=system_prompt,
|
||||
max_output_tokens=self.config.max_output_tokens,
|
||||
temperature=self.config.temperature,
|
||||
)
|
||||
response = await model_with_system_prompt.generate_content_async(
|
||||
user_message,
|
||||
generation_config=self.generate_config,
|
||||
|
||||
# 비동기 호출
|
||||
response = await self.client.models.generate_content(
|
||||
model=self.model_id,
|
||||
contents=user_message,
|
||||
config=config_with_system
|
||||
)
|
||||
|
||||
text = response.text if response.text else ""
|
||||
|
||||
return {
|
||||
"content": [{"type": "text", "text": text}],
|
||||
"stop_reason": "end_turn",
|
||||
|
||||
Reference in New Issue
Block a user