|
import gradio as gr |
|
from langchain.chat_models import ChatOpenAI |
|
from langchain.schema import HumanMessage |
|
|
|
|
|
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 |
|
|
|
|
|
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() |
|
|