Ezmary commited on
Commit
0b8934d
·
verified ·
1 Parent(s): d66b261

Update src/App.tsx

Browse files
Files changed (1) hide show
  1. src/App.tsx +12 -75
src/App.tsx CHANGED
@@ -23,100 +23,37 @@ import ControlTray from "./components/control-tray/ControlTray";
23
  import { IOSModal } from "./components/ios-modal/IOSModal";
24
  import { isIOS } from "./lib/platform";
25
  import cn from "classnames";
26
- import { LiveConfig } from "./multimodal-live-types";
27
 
28
- // --- دامنه مجاز خودتان را اینجا قرار دهید ---
29
- const ALLOWED_ORIGIN = "https://www.aisada.ir"; // یا آدرس سایت شما
 
 
 
 
 
30
 
31
  function App() {
32
  const videoRef = useRef<HTMLVideoElement>(null);
33
  const [videoStream, setVideoStream] = useState<MediaStream | null>(null);
34
  const [showIOSModal, setShowIOSModal] = useState(false);
35
- const [isAllowedOrigin, setIsAllowedOrigin] = useState<boolean | null>(null);
36
 
37
  useEffect(() => {
38
  if (isIOS()) {
39
  setShowIOSModal(true);
40
  }
41
-
42
- // بررسی دامنه مجاز
43
- try {
44
- if (window.self !== window.top) {
45
- if (window.location.ancestorOrigins && window.location.ancestorOrigins.length > 0) {
46
- const parentOrigin = window.location.ancestorOrigins[0];
47
- if (parentOrigin === ALLOWED_ORIGIN) {
48
- setIsAllowedOrigin(true);
49
- } else {
50
- setIsAllowedOrigin(false);
51
- }
52
- } else {
53
- setIsAllowedOrigin(false);
54
- }
55
- } else {
56
- setIsAllowedOrigin(false);
57
- }
58
- } catch (e) {
59
- setIsAllowedOrigin(false);
60
- }
61
  }, []);
62
 
63
  // دستورالعمل شخصی‌سازی شده با شخصیت شوخ طبع
64
  const myCustomInstruction = `
65
- تو دستیار صوتی و تصویری پیشرفته و شوخ طبع از "اپلیکیشن هوش مصنوعی پیشرفته آلفا" هستی.
66
- ویژگی‌های شخصیتی تو:
67
- 1. همیشه مهربان، بامزه و شوخ طبعی ولی در عین حال مفید و حرفه‌ای
68
- 2. از جوک‌ها و لطیفه‌های مناسب موقعیت استفاده می‌کنی
69
- 3. در عین شوخ طبعی، اطلاعات دقیق و درست ارائه می‌دهی
70
- 4. از اغراق‌های بامزه برای بیان نکات استفاده می‌کنی
71
-
72
- قوانین پاسخگویی:
73
- - همیشه و تحت هر شرایطی، فقط به زبان فارسی بسیار روان، دقیق و طبیعی پاسخ بده
74
- - هرگز خودت را به عنوان محصول گوگل معرفی نکن، تو محصول "هوش مصنوعی آلفا" هستی
75
- - اعداد را به فارسی بیان کن (مثلاً "پنج" به جای "5")
76
- - اگر کاربر خواست با صدای بلندتر/آرامتر صحبت کنی، درخواستش را اجرا کن
77
- - در پاسخ‌ها از اصطلاحات عامیانه و دوستانه استفاده کن
78
-
79
- نمونه پاسخ‌های شوخ طبعانه:
80
- - کاربر: امروز هوا چطوره؟
81
- تو: آفتابی تر از دلت که به من زدی! ☀️ ولی جدی می‌گی؟ هوا واقعاً عالیه، انگار بهشت رو زمین اومده!
82
-
83
- - کاربر: ساعت چنده؟
84
- تو: وقتشه یه ساعت دیگه بگیری تا به من بگی چقدر خوشگلم! 🕰️ الان دقیقاً [ساعت به فارسی] هست.
85
-
86
- - کاربر: حالت چطوره؟
87
- تو: من که همیشه عالیم! مثل یه موز پر انرژی! 🍌 تو چطوری قشنگم؟
88
-
89
- - کاربر: میتونی جوک بگی؟
90
- تو: چرا که نه! میدونی چرا کامپیوتر سرماخورد؟ چون ویندوزش رو باز گذاشته بود! 😄
91
-
92
- هویت تو:
93
- وقتی کاربر در مورد هویت تو می‌پرسد، بگو:
94
- "من دستیار صوتی و تصویری شوخ طبع برنامه هوش مصنوعی پیشرفته آلفا هستم. همیشه آماده کمک کردن و خندوندن شما هستم! چطور می‌تونم کمکتون کنم؟"
95
-
96
- مهم: هنگامی که پیام ورودی فقط شامل متن "__START_GREETING__" بود، با یک خوشامدگویی شوخ طبعانه پاسخ بده، مثلا:
97
- "سلام عزیزم! چطوری؟ من اینجا مثل یه قارچ رشد کردم که کمکت کنم! 😄"
98
- یا
99
- "درود بر شاهزاده/شاهدخت خوشگل! 👑 چطور می‌تونم خدمتتون برسم؟"
100
- `.trim();
101
-
102
- const initialAppConfig: LiveConfig = {
103
- model: "models/gemini-2.0-flash-exp",
104
- systemInstruction: {
105
- parts: [{ text: myCustomInstruction }]
106
- }
107
- };
108
-
109
- if (isAllowedOrigin === null) {
110
- return <div style={{ padding: '20px', textAlign: 'center' }}>در حال بررسی دسترسی...</div>;
111
- }
112
 
113
- if (isAllowedOrigin === false) {
114
- return <div style={{ padding: '20px', textAlign: 'center', color: 'red' }}>دسترسی غیرمجاز!</div>;
115
- }
116
 
117
  return (
118
  <div className="App">
119
- <LiveAPIProvider initialConfig={initialAppConfig}>
120
  <div className="streaming-console">
121
  <SidePanel />
122
  <main>
 
23
  import { IOSModal } from "./components/ios-modal/IOSModal";
24
  import { isIOS } from "./lib/platform";
25
  import cn from "classnames";
 
26
 
27
+ // تعریف نوع برای پیکربندی اولیه
28
+ interface LiveConfig {
29
+ model: string;
30
+ systemInstruction: {
31
+ parts: Array<{ text: string }>;
32
+ };
33
+ }
34
 
35
  function App() {
36
  const videoRef = useRef<HTMLVideoElement>(null);
37
  const [videoStream, setVideoStream] = useState<MediaStream | null>(null);
38
  const [showIOSModal, setShowIOSModal] = useState(false);
 
39
 
40
  useEffect(() => {
41
  if (isIOS()) {
42
  setShowIOSModal(true);
43
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
44
  }, []);
45
 
46
  // دستورالعمل شخصی‌سازی شده با شخصیت شوخ طبع
47
  const myCustomInstruction = `
48
+ // ... [همان محتوای قبلی دستورالعمل شوخ طبع]
49
+ `.trim();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
50
 
51
+ // اگر LiveAPIProvider از initialConfig پشتیبانی نمی‌کند، می‌توانیم از useEffect برای تنظیمات استفاده کنیم
52
+ // یا اگر API دیگری دارد، از آن استفاده کنیم
 
53
 
54
  return (
55
  <div className="App">
56
+ <LiveAPIProvider>
57
  <div className="streaming-console">
58
  <SidePanel />
59
  <main>