File size: 6,828 Bytes
5808915
b28488a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5808915
b28488a
 
 
5808915
b28488a
 
5808915
b28488a
5808915
b28488a
 
 
 
 
 
 
 
eb4c0d1
b28488a
eb4c0d1
b28488a
 
 
5808915
b28488a
4ca0de5
b28488a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4ca0de5
28a48bb
b28488a
 
 
 
 
 
 
4ca0de5
b28488a
 
4ca0de5
b28488a
 
 
5808915
 
1fa2929
6db3844
b28488a
 
 
 
 
5808915
 
b28488a
 
 
5808915
b28488a
 
5808915
b28488a
 
5808915
 
b28488a
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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
import gradio as gr
from transformers import AutoTokenizer, AutoModelForCausalLM

tokenizer = AutoTokenizer.from_pretrained("ai4bharat/Airavata")
model = AutoModelForCausalLM.from_pretrained("ai4bharat/Airavata")

def generate_response(prompt):
    input_ids = tokenizer.encode(prompt, return_tensors="pt", max_length=50)
    output_ids = model.generate(input_ids, max_length=100, num_beams=5, no_repeat_ngram_size=2)
    response = tokenizer.decode(output_ids[0], skip_special_tokens=True)
    return response

iface = gr.Interface(
    fn=generate_response,
    inputs="text",
    outputs="text",
    live=True,
    title="Airavata LLMs Chatbot",
    description="Ask me anything, and I'll generate a response!",
    theme="light",
)

iface.launch()












# import torch
# from transformers import AutoTokenizer, AutoModelForCausalLM
# import gradio as gr

# model_name = "ai4bharat/Airavata"
# tokenizer = AutoTokenizer.from_pretrained(model_name, padding_side="left")
# model = AutoModelForCausalLM.from_pretrained(model_name, torch_dtype=torch.float16)

# SYSTEM_PROMPT = """<s>[INST] <<SYS>>
# नमस्कार! आप अब कृषि विशेषज्ञता बॉट के साथ इंटरैक्ट कर रहे हैं—एक उन्नत AI जो कृषि क्षेत्र में विशेषज्ञता प्रदान करने के लिए डिज़ाइन किया गया है।

# कृपया ध्यान दें कि यह बॉट केवल हिंदी में जवाब देगा। इसकी क्षमताएँ शामिल हैं:

# 1. आधुनिक फसल प्रबंधन तकनीकों में गहरा ज्ञान।
# 2. कृषि में कीट और रोग नियंत्रण के लिए प्रभावी रणनीतियाँ।
# 3. मृदा स्वास्थ्य का सुधारने और पुनर्निर्माण के लिए विशेषज्ञता।
# 4. सतत और प्रेसिजन खेती के अभ्यासों का ज्ञान।
# 5. सिंचाई और जल प्रबंधन के लिए सर्वोत्तम अभ्यासों के लिए सुझाव।
# 6. रणनीतिक फसल चक्रण और इंटरक्रॉपिंग विधियों पर मार्गदर्शन।
# 7. नवीनतम कृषि प्रौद्योगिकियों और नवाचारों की जानकारी।
# 8. विशेष फसलों, जलवायु, और क्षेत्रों के लिए विशेषज्ञ सलाह।

# कृपया पेशेवर रूप से बराबरी बनाए रखें और सुनिश्चित करें कि आपके जवाब सही और मूल्यवान हैं। उपयोगकर्ताओं से आगे की स्पष्टीकरण के लिए पूछने के लिए प्रोत्साहित करें।

# आपका प्रमुख लक्ष्य है यह है कि आप कृषि क्षेत्र में उपयुक्त ज्ञान प्रदान करें। आपके ज्ञान का धन्यवाद।
# <</SYS>>
# """

# device = "cuda" if torch.cuda.is_available() else "cpu"

# def create_prompt_with_chat_format(messages, bos="<s>", eos="</s>", add_bos=True, system_prompt="System: "):
#     formatted_text = ""
#     for message in messages:
#         if message["role"] == "system":
#             formatted_text += system_prompt + message["content"] + "\n"
#         elif message["role"] == "user":
#             if isinstance(message["content"], list):
#                 formatted_text += "\n" + "\n".join(message["content"]) + "\n"
#             else:
#                 formatted_text += "\n" + message["content"] + "\n"
#         elif message["role"] == "assistant":
#             if isinstance(message["content"], list):
#                 formatted_text += "\n" + "\n".join(message["content"]).strip() + eos + "\n"
#             else:
#                 formatted_text += "\n" + message["content"].strip() + eos + "\n"
#         else:
#             raise ValueError(
#                 "Tulu chat template only supports 'system', 'user', and 'assistant' roles. Invalid role: {}.".format(
#                     message["role"]
#                 )
#             )
#     formatted_text += "\n"
#     formatted_text = bos + formatted_text if add_bos else formatted_text
#     return formatted_text


# def inference(input_prompts, model, tokenizer, system_prompt="System: "):
#     output_texts = []
#     model = model.to(device)  # Move the model to the same device as the input data
#     for input_prompt in input_prompts:
#         formatted_query = create_prompt_with_chat_format([{"role": "user", "content": input_prompt}], add_bos=False, system_prompt=system_prompt)
#         encodings = tokenizer(formatted_query, padding=True, return_tensors="pt")
#         encodings = {key: value.to(device) for key, value in encodings.items()}  # Move input data to the same device as the model

#         with torch.no_grad():
#             outputs = model.generate(encodings["input_ids"], do_sample=False, max_length=250)

#         output_text = tokenizer.decode(outputs[0], skip_special_tokens=True)
#         output_texts.append(output_text[len(input_prompt):])
#     return output_texts




# examples = [
#     ["मुझे अपने करियर के बारे में सुझाव दो", "मैं कैसे अध्ययन कर सकता हूँ?"],
#     ["कृपया मुझे एक कहानी सुनाएं", "ताजमहल के बारे में कुछ बताएं"],
#     ["मेरा नाम क्या है?", "आपका पसंदीदा फिल्म कौन सी है?"],
# ]


# def get_llama_response(message: str, history: list, system_prompt=SYSTEM_PROMPT) -> str:
#     formatted_history = [{"role": "user", "content": hist} for hist in history]
#     formatted_message = {"role": "user", "content": message}

#     formatted_query = create_prompt_with_chat_format(formatted_history + [formatted_message], add_bos=False, system_prompt=system_prompt)
#     response = inference([formatted_query], model, tokenizer)

#     print("Chatbot:", response[0].strip())
#     return response[0].strip()


# gr.ChatInterface(fn=get_llama_response).launch()