This commit is contained in:
MarkLo 2025-11-21 05:12:02 +08:00
parent d3c111640d
commit e898ebb2b5
3 changed files with 14 additions and 10 deletions

View File

@ -3,14 +3,10 @@
*/
"use client";
import { useState } from "react";
import { useEffect } from "react";
import { useRouter } from "next/navigation";
import { AnalysisForm } from "@/components/analysis/AnalysisForm";
import { TradingDecision } from "@/components/analysis/TradingDecision";
import { AnalystReport } from "@/components/analysis/AnalystReport";
import { PriceChart } from "@/components/analysis/PriceChart";
import { LoadingSpinner } from "@/components/shared/LoadingSpinner";
import { Button } from "@/components/ui/button";
import { useAnalysis } from "@/hooks/useAnalysis";
import { useAnalysisContext } from "@/context/AnalysisContext";
import type { AnalysisRequest } from "@/lib/types";
@ -20,9 +16,17 @@ export default function AnalysisPage() {
const { setAnalysisResult } = useAnalysisContext();
const { runAnalysis, loading, error, result } = useAnalysis();
const handleSubmit = async (request: AnalysisRequest) => {
// 當分析完成時自動跳轉到結果頁面
useEffect(() => {
if (result && !loading && !error) {
setAnalysisResult(result);
router.push("/analysis/results");
}
}, [result, loading, error, router, setAnalysisResult]);
const handleSubmit = async (data: AnalysisRequest) => {
try {
await runAnalysis(request);
await runAnalysis(data);
} catch (err) {
// Error is handled by the hook
console.error("Analysis failed:", err);

View File

@ -155,12 +155,12 @@ export function AnalysisForm({ onSubmit, loading = false }: AnalysisFormProps) {
/>
</div>
{/* 研究深度 - 放大顯示 */}
{/* 研究深度 - 單欄寬度 */}
<FormField
control={form.control}
name="research_depth"
render={({ field }) => (
<FormItem className="md:col-span-2">
<FormItem>
<FormLabel className="text-lg font-semibold"></FormLabel>
<Select
onValueChange={(value) => field.onChange(parseInt(value))}

View File

@ -14,7 +14,7 @@ class FinancialSituationMemory:
openai_api_key = os.getenv("OPENAI_API_KEY")
self.client = OpenAI(base_url=config["backend_url"], api_key=openai_api_key)
self.chroma_client = chromadb.Client(Settings(allow_reset=True))
self.situation_collection = self.chroma_client.create_collection(name=name)
self.situation_collection = self.chroma_client.get_or_create_collection(name=name)
def get_embedding(self, text):
"""Get OpenAI embedding for a text"""