Spaces:
Sleeping
Sleeping
import gradio as gr | |
from transformers import AutoProcessor, Kosmos2ForConditionalGeneration | |
from PIL import Image | |
import io | |
# 📦 تحميل المعالج والنموذج | |
processor = AutoProcessor.from_pretrained("microsoft/kosmos-2-patch14-224") | |
model = Kosmos2ForConditionalGeneration.from_pretrained("microsoft/kosmos-2-patch14-224") | |
# 💬 تعليمات الذكاء الاصطناعي لتكون خبير تداول | |
SYSTEM_PROMPT = """ | |
You are a professional technical analyst with 10 years of experience in financial markets. | |
Analyze the chart provided and answer the following: | |
1. What is the current trend? (Uptrend / Downtrend / Sideways) | |
2. Are there any key support/resistance levels? | |
3. What technical indicators do you see? (RSI, MACD, Bollinger Bands...) | |
4. Suggest a trade idea: Entry point, Stop Loss, Take Profit | |
5. Timeframe and Risk/Reward ratio | |
6. Strategy name and explanation | |
Answer in Arabic in a professional tone. | |
""" | |
def analyze_chart(image): | |
if image is None: | |
return "❌ لم يتم تحميل أي صورة." | |
try: | |
# تحويل الصورة إلى RGB | |
img = image.convert("RGB") | |
# دمج التعليمات مع الصورة | |
prompt = f"{SYSTEM_PROMPT}\nQuestion: ما هو تحليل هذه الصورة؟\nAnswer:" | |
# المعالجة | |
inputs = processor(images=img, text=prompt, return_tensors="pt") | |
# التوليد | |
generated_ids = model.generate(**inputs, max_new_tokens=256) | |
response = processor.batch_decode(generated_ids, skip_special_tokens=False)[0] | |
response = processor.tokenizer.decode(processor.tokenizer.encode(response.split("Answer:")[-1].strip())) | |
return response | |
except Exception as e: | |
return f"❌ حدث خطأ أثناء التحليل:\n{str(e)}" | |
# 🖥️ واجهة Gradio | |
interface = gr.Interface( | |
fn=analyze_chart, | |
inputs=gr.Image(type="pil", label="تحميل مخطط التداول"), | |
outputs=gr.Markdown(label="تحليل الذكاء الاصطناعي"), | |
title="🤖 منصة تحليل التداول الذكية (نسخة مجانية)", | |
description="استخدم الذكاء الاصطناعي المحلي لتحليل مخططات التداول وإعطاء تحليل احترافي.", | |
theme="default", | |
) | |
if __name__ == "__main__": | |
interface.launch() |