|
--- |
|
library_name: transformers |
|
tags: |
|
- unsloth |
|
--- |
|
|
|
# Model Card for Model ID |
|
|
|
<!-- Provide a quick summary of what the model is/does. --> |
|
|
|
|
|
|
|
## Requirements |
|
```python |
|
!pip install gradio |
|
!pip install -U xformers --index-url https://download.pytorch.org/whl/cu121 |
|
!pip install "unsloth[kaggle-new] @ git+https://github.com/unslothai/unsloth.git" |
|
|
|
import os |
|
os.environ["WANDB_DISABLED"] = "true" |
|
``` |
|
|
|
|
|
|
|
|
|
|
|
|
|
## Gradio App |
|
```python |
|
|
|
import gradio as gr |
|
from transformers import AutoTokenizer |
|
from peft import AutoPeftModelForCausalLM |
|
import torch |
|
import anthropic |
|
|
|
# Assuming the model and tokenizer for Mistral are correctly set up as per your provided code. |
|
# Let's also assume you have a way to call the Anthropic model, perhaps via an API or another library. |
|
load_in_4bit = True |
|
model = AutoPeftModelForCausalLM.from_pretrained( |
|
"DisgustingOzil/Mistral_summarizer", |
|
load_in_4bit=load_in_4bit, |
|
torch_dtype=torch.float16, |
|
).to("cuda") |
|
tokenizer = AutoTokenizer.from_pretrained("DisgustingOzil/Mistral_summarizer") |
|
def summarize_with_mistral(text): |
|
|
|
|
|
summary_prompt = f"""Below is a text that needs to be summarized. Based on the input, write a good summary which summarize all main points. |
|
|
|
### Text: |
|
{text} |
|
|
|
### Summary: |
|
""" # The summary part is left empty for generation |
|
|
|
inputs = tokenizer([summary_prompt], return_tensors="pt").to("cuda") |
|
outputs = model.generate(**inputs, max_new_tokens=150, use_cache=True) |
|
summary = tokenizer.batch_decode(outputs, skip_special_tokens=True) |
|
summary_start_index = summary[0].find("### Summary:") |
|
summary_text = summary[0][summary_start_index:].replace("### Summary:", "").strip() |
|
return summary_text |
|
summary_1="" |
|
def summarize_with_anthropic(text): |
|
API_KEY="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" |
|
|
|
client = anthropic.Anthropic( |
|
# defaults to os.environ.get("ANTHROPIC_API_KEY") |
|
api_key=API_KEY, |
|
) |
|
message = client.messages.create( |
|
model="claude-3-haiku-20240307", |
|
max_tokens=3214, |
|
temperature=0, |
|
system="Create Good summary explaining all key points in detail, easy and understandable way", |
|
messages=[ |
|
{ |
|
"role": "user", |
|
"content": [ |
|
{ |
|
"type": "text", |
|
"text": text |
|
} |
|
] |
|
} |
|
] |
|
) |
|
# Placeholder function to represent summarization with an Anthropic model. |
|
# This should be replaced with actual API calls or function calls to the Anthropic model. |
|
# summary_1=message.content[0] |
|
summary=message.content[0] |
|
return summary.text |
|
|
|
def summarize_text(text, model_choice): |
|
if model_choice == "Mistral 7b": |
|
return summarize_with_mistral(text) |
|
elif model_choice == "Claude-3-Haiku": |
|
return summarize_with_anthropic(text) |
|
else: |
|
return "Invalid model choice." |
|
|
|
# Define the Gradio interface with a dropdown for model selection |
|
iface = gr.Interface( |
|
fn=summarize_text, |
|
inputs=[gr.Textbox(lines=10, label="Input Text"), gr.Dropdown(choices=["Mistral 7b", "Claude-3-Haiku"], label="Model Choice")], |
|
outputs=gr.Textbox(label="Summary"), |
|
title="Text Summarization", |
|
description="Enter text to summarize based on Maxwell's equations and related concepts. Select a model for summarization." |
|
) |
|
|
|
# Launch the app |
|
if __name__ == "__main__": |
|
iface.launch(debug=True) |
|
|
|
|
|
|
|
|
|
``` |
|
|
|
|
|
|