This commit is contained in:
2026-02-01 20:24:04 +09:00
parent 498bddb4fe
commit 3c2f4a0371
10 changed files with 276 additions and 215 deletions

View File

@@ -7,11 +7,21 @@ export class AiService {
* 뉴스 기사들을 바탕으로 시장 심리 및 인사이트 분석
*/
static async analyzeNewsSentiment(config: AiConfig, newsHeadlines: string[]): Promise<string> {
const prompt = `당신은 전문 주식 분석가입니다. 다음 뉴스 헤드라인들을 분석하여 시장의 심리(상승/하락/중립)와 투자자가 주목해야 할 핵심 포인트 3가지를 한국어로 요약해 주세요.
뉴스 헤드라인:
${newsHeadlines.join('\n')}
`;
const isBatch = newsHeadlines.length > 1;
const prompt = isBatch
? `당신은 전문 주식 분석가입니다. 다음 뉴스 헤드라인들을 분석하여 시장의 전반적인 심리와 투자 핵심 포인트를 한국어로 리포트 형식으로 작성해 주세요.
또한, 반드시 리포트 내용이 끝난 뒤에 "---METADATA---" 라는 구분선을 넣고, 그 바로 뒤에 각 뉴스 인덱스별로 연관된 테마와 종목 정보를 JSON 배열 형식으로 포함해 주세요.
JSON 형식 예시: [{"index": 0, "themes": ["반도체", "AI"], "stocks": ["삼성전자"], "sentiment": "POSITIVE"}, ...]
분석할 뉴스 헤드라인:
${newsHeadlines.map((h, i) => `${i}. ${h}`).join('\n')}
`
: `당신은 전문 주식 분석가입니다. 다음 뉴스 헤드라인을 분석하여 시장의 심리(상승/하락/중립)와 투자자가 주목해야 할 핵심 포인트를 한국어로 요약해 주세요.
분석할 뉴스 헤드라인:
${newsHeadlines.join('\n')}
`;
if (config.providerType === 'gemini') {
return this.callGemini(config.modelName, prompt);