Baseline
-
+
GPT-4o
-
๊ธฐ๋ณธ ๋ชจ๋ธ
+
๊ธฐ๋ณธ ๋ชจ๋ธ
-
+
Ours
-
- GPT-4o
-
-
- + BarbellAI ๊ธฐ์
-
-
+
Chain of Thought + RAG
+
+ ๊ธฐ๋ฐ ๋ชจ๋ธ: GPT-4o
+
@@ -81,24 +69,24 @@ export default function ABTestResults() {
whileInView={{ opacity: 1, y: 0 }}
viewport={{ once: true }}
transition={{ duration: 0.8, delay: 0.1 }}
- className="bg-white rounded-xl p-8 shadow-lg mb-8"
+ className="bg-white rounded-xl p-8 shadow-lg mb-4"
>
๐ฏ ์ข
ํฉ ๋ถ์ ํ๊ฐ (๊น์ด+๊ทผ๊ฑฐ+ํต์ฐฐ๋ ฅ ํ๊ท )
-
-
- 6.92
-
-
CoT/RAG ํ๊ท ์ ์
-
5.25
Baseline ํ๊ท ์ ์
+
+
+ 6.92
+
+
CoT/RAG ํ๊ท ์ ์
+
@@ -206,26 +194,6 @@ export default function ABTestResults() {
-
- {/* ๊ฒฐ๋ก */}
-
-
-
๐ ๊ฒฐ๋ก
-
- CoT/RAG ๋ฐฉ์์ด ๋ชจ๋ ํ๊ฐ ํญ๋ชฉ์์ ํต๊ณ์ ์ผ๋ก ์ ์๋ฏธํ๊ฒ ์ฐ์ํ
- ์ฑ๋ฅ์ ๋ณด์ฌ์ฃผ์์ต๋๋ค.
-
- p < 0.001 ์์ค์์
- ํต๊ณ์ ์ ์์ฑ์ ํ์ธํ์ต๋๋ค.
-
-
-
diff --git a/src/components/chat/ChatWindow.tsx b/src/components/chat/ChatWindow.tsx
index 0ada267..8d0007f 100644
--- a/src/components/chat/ChatWindow.tsx
+++ b/src/components/chat/ChatWindow.tsx
@@ -174,7 +174,8 @@ export default function ChatWindow({ isOpen, onClose }: ChatWindowProps) {
};
const handleSubmit = useCallback(() => {
- if (!message.trim() || isCreating) return;
+ if (((message ?? "").trim().length === 0 && !newsInfo) || isCreating)
+ return;
// ๋ด์ค ์ ๋ณด๊ฐ ์์ผ๋ฉด ๋ฉ์์ง์ ํฌํจ
let finalMessage = message;
@@ -212,10 +213,22 @@ ${newsInfo.impact ? `์ํฅ๋: ${newsInfo.impact === "positive" ? "๊ธ์ " : ne
return;
}
- // ํ์ฌ ์ฑํ
๋ฐฉ์ด ์์ผ๋ฉด ์๋ก ์์ฑ
+ // ํ์ฌ ์ฑํ
๋ฐฉ์ด ์์ผ๋ฉด ์๋ก ์์ฑ ํ ์ฆ์ ์ ์ก
const title = generateKoreanTimestamp();
- createChatWithCallback(title);
- setPendingMessage(finalMessage); // ์๋ก ์์ฑ๋ ์ฑํ
๋ฐฉ์ผ๋ก ๋ฉ์์ง ์ ์ก์ ์ํด pendingMessage ์ค์
+ createChatWithCallback(
+ title,
+ (newId) => {
+ setCurrentChatId(newId);
+ sendMessage({ chatId: newId, message: finalMessage });
+ setMessage("");
+ setNewsInfo(null);
+ setShowHistory(false);
+ },
+ () => {
+ // ์คํจ ์ ๊ธฐ์กด fallback ๋ก์ง ์ ์ง
+ setPendingMessage(finalMessage);
+ }
+ );
}, [
message,
isCreating,
diff --git a/src/components/stockDetail/TechnicalAnalysis.tsx b/src/components/stockDetail/TechnicalAnalysis.tsx
index 2640924..396528f 100644
--- a/src/components/stockDetail/TechnicalAnalysis.tsx
+++ b/src/components/stockDetail/TechnicalAnalysis.tsx
@@ -83,13 +83,27 @@ export default function TechnicalAnalysis({
const volaData = analysis?.volatility_analysis_data;
const volData = analysis?.volume_analysis_data;
- const isAnalysisLoading = !analysis;
-
// ๊ธฐ์ ์ ์งํ ๊ฐ (์ค์ ๋ฐ์ดํฐ ์ฌ์ฉ)
const rsi = mainData?.rsi?.value ?? 28.4;
+ const macdValue: number | undefined =
+ typeof mainData?.macd?.value === "number" ? mainData.macd.value : undefined;
+ const macdDerivedStatus =
+ macdValue === undefined
+ ? undefined
+ : macdValue > 0
+ ? "์์น"
+ : macdValue < 0
+ ? "ํ๋ฝ"
+ : "์ค๋ฆฝ";
+ const macdStatusText = mainData?.macd?.status ?? macdDerivedStatus;
const dailyRange = volaData?.volatility?.value?.volatility_percent ?? 2.8;
const avgVolatility =
- volaData?.volatility?.value?.avg_volatility_percent ?? 2.8;
+ volaData?.volatility?.value?.avg50_volatility_percent ??
+ volaData?.volatility?.value?.avg_volatility_percent ??
+ 2.8;
+ const volatilityAnalysisFromApi = volaData?.volatility?.analysis as
+ | string
+ | undefined;
const currentVolume = toNum(volData?.volume?.value?.volume) || 15234567;
const avgVolume = toNum(volData?.volume?.value?.avg_volume_20) || 12456789;
const volumeRatio = (
@@ -98,8 +112,6 @@ export default function TechnicalAnalysis({
).toFixed(1);
const mfiValue =
typeof volData?.mfi?.value === "number" ? volData.mfi.value : undefined;
- const obvValue = toNum(volData?.obv?.value?.obv);
- const obvMa20Value = toNum(volData?.obv?.value?.obv_ma20);
const tabs = [
{ id: "summary", label: "์ฃผ์ ์งํ", icon: Target },
@@ -207,16 +219,16 @@ export default function TechnicalAnalysis({
>
- ์ข
ํฉ ์ ํธ
+ MACD
{_isTechnicalLoading ? (
) : (
- (mainData?.macd?.status ?? "์ค๋ฆฝ")
+ (macdStatusText ?? "์ค๋ฆฝ")
)}
{hoveredKey === "summary_total" && (
@@ -274,7 +286,10 @@ export default function TechnicalAnalysis({
-
์ผ์ผ ๋ณ๋์ฑ ๊ด๋ จ ์ฐธ๊ณ ๊ฐ
+
+ {volatilityAnalysisFromApi ??
+ "๋ถ์ ์ ๋ณด๋ฅผ ๋ถ๋ฌ์ค๊ณ ์์ต๋๋ค."}
+
)}
@@ -302,7 +317,10 @@ export default function TechnicalAnalysis({