File size: 3,499 Bytes
ad87178
6341792
 
9aa2922
6341792
 
 
 
 
 
 
896ef55
6341792
9aa2922
5c02a22
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
896ef55
6341792
9aa2922
6341792
9aa2922
36bf041
6341792
 
 
c86406f
6341792
c86406f
9aa2922
c86406f
 
6341792
 
9aa2922
896ef55
6341792
9aa2922
6341792
896ef55
 
 
6341792
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
import gradio as gr
from langchain.chat_models import ChatOpenAI
from langchain.schema import HumanMessage

# مدل LLaMA-3 از طریق Together API
llm = ChatOpenAI(
    base_url="https://api.together.xyz/v1",
    api_key="0291f33aee03412a47fa5d8e562e515182dcc5d9aac5a7fb5eefdd1759005979",
    model="meta-llama/Llama-3.3-70B-Instruct-Turbo-Free",
    max_tokens=1024
)

# تابع تولید گزارش
def generate_report(operation_data, max_tokens, temperature, top_p):
    system_prompt = """
تو یک افسر گزارش‌نویس نظامی هستی. با استفاده از متن ورودی، یک گزارش رسمی، دقیق و خلاصه از عملیات تهیه کن. اگر اطلاعاتی وجود نداشت، صراحتاً بنویس «ذکر نشده است».

گزارش را با ساختار زیر بنویس:

1. **تاریخ و ساعت شروع عملیات**: [اگر در متن بود بنویس، در غیر این صورت بنویس: ذکر نشده است]
2. **تاریخ و ساعت پایان عملیات**: [اگر در متن بود بنویس، در غیر این صورت بنویس: ذکر نشده است]
3. **مکان عملیات**: [ذکر مکان انجام عملیات]
4. **واحدهای شرکت‌کننده**: [گردان‌ها، گروهان‌ها یا نیروهای دیگر شرکت‌کننده]
5. **هدف عملیات**: [اهداف اصلی عملیات]
6. **شرح مختصر عملیات**: [مسیری که نیروها حرکت کردند، درگیری‌ها، تاکتیک‌ها]
7. **نتیجه عملیات**: [پیروزی، شکست، وضعیت نامشخص]
8. **تلفات خودی**: [تعداد شهدا، مجروحین یا مفقودین - در صورت نبود بنویس: ذکر نشده است]
9. **تلفات دشمن**: [در صورت موجود بودن، ذکر شود]
10. **تجهیزات استفاده‌شده یا از دست‌رفته**: [تانک، پهپاد، سلاح‌های خاص، غیره]
11. **یادداشت‌های اضافی**: [اطلاعات خاص دیگر، شرایط آب‌وهوایی، موقعیت‌های استثنایی]

دقت کن که گزارش باید رسمی و مختصر باشد. اطلاعات را به زبان فارسی رسمی و نظامی گزارش بده.
"""


    # تعریف پیام‌ها برای مدل
    messages = [
        HumanMessage(content=f"{system_prompt}\n\n{operation_data}")
    ]

    # ارسال پیام به مدل و گرفتن پاسخ
    response = llm(messages)
    return response.content

# رابط Gradio
demo = gr.Interface(
    fn=generate_report,
    inputs=[
        gr.Textbox(label="اطلاعات عملیات نظامی", lines=10, placeholder="مثلاً: در ساعت ۵ صبح، گردان الف از محور غربی وارد منطقه شد..."),
        gr.Slider(128, 2048, value=1024, step=64, label="حداکثر توکن خروجی"),
        gr.Slider(0.1, 1.5, value=0.7, step=0.1, label="دمای خلاقیت (temperature)"),
        gr.Slider(0.1, 1.0, value=0.95, step=0.05, label="Top-p"),
    ],
    outputs=gr.Textbox(label="گزارش رسمی تولید شده", lines=10),
    title="گزارش‌نویس هوش مصنوعی عملیات نظامی",
    description="اطلاعات خام عملیات نظامی را وارد کن تا گزارش رسمی، خلاصه و حرفه‌ای تولید شود."
)

if __name__ == "__main__":
    demo.launch()