reporting / app.py
M17idd's picture
Update app.py
5c02a22 verified
raw
history blame
3.5 kB
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()