|
--- |
|
license: apache-2.0 |
|
datasets: |
|
- fka/awesome-chatgpt-prompts |
|
- HuggingFaceFW/fineweb-2 |
|
language: |
|
- ae |
|
metrics: |
|
- bleu |
|
base_model: |
|
- meta-llama/Llama-3.3-70B-Instruct |
|
new_version: meta-llama/Llama-3.3-70B-Instruct |
|
library_name: asteroid |
|
--- |
|
from transformers import AutoModelForCausalLM, AutoTokenizer |
|
import gradio as gr |
|
|
|
# Načteme model GPT-J 6B a tokenizer |
|
model_name = "EleutherAI/gpt-j-6B" |
|
tokenizer = AutoTokenizer.from_pretrained(model_name) |
|
model = AutoModelForCausalLM.from_pretrained(model_name) |
|
|
|
# Funkce pro generování odpovědí |
|
def travel_assistant(input_text): |
|
# Přizpůsobený prompt pro cestování |
|
prompt = f"Jsi cestovatelský asistent. Pomáháš lidem s informacemi o cestování, včetně doporučení destinací, vízových informací, tipů na plány cest a místních tradic. Odpověz na následující dotaz: {input_text}" |
|
|
|
# Tokenizace vstupu |
|
inputs = tokenizer(prompt, return_tensors="pt") |
|
|
|
# Generování odpovědi |
|
outputs = model.generate(**inputs, max_length=200) |
|
|
|
# Dekódování odpovědi |
|
generated_text = tokenizer.decode(outputs[0], skip_special_tokens=True) |
|
|
|
return generated_text |
|
|
|
# Vytvoření uživatelského rozhraní s Gradio |
|
iface = gr.Interface(fn=travel_assistant, |
|
inputs="text", |
|
outputs="text", |
|
title="Cestovatelský asistent", |
|
description="Ptejte se na tipy, doporučení destinací, víza a další cestovatelské informace. Například: 'Jaké jsou vízové požadavky pro Thajsko?'") |
|
|
|
# Spuštění aplikace |
|
iface.launch() |
|
import requests |
|
import pandas as pd |
|
from transformers import AutoModelForCausalLM, AutoTokenizer |
|
import gradio as gr |
|
|
|
# Načteme model GPT-J 6B a tokenizer |
|
model_name = "EleutherAI/gpt-j-6B" |
|
tokenizer = AutoTokenizer.from_pretrained(model_name) |
|
model = AutoModelForCausalLM.from_pretrained(model_name) |
|
|
|
# API klíče pro OpenWeather a CurrencyLayer |
|
weather_api_key = "tvůj_openweather_api_klíč" # Získáš na https://openweathermap.org/api |
|
currency_api_key = "tvůj_currencylayer_api_klíč" # Získáš na https://currencylayer.com/ |
|
|
|
# Funkce pro získání počasí |
|
def get_weather(city): |
|
url = f"http://api.openweathermap.org/data/2.5/weather?q={city}&appid={weather_api_key}&units=metric&lang=cs" |
|
response = requests.get(url) |
|
data = response.json() |
|
|
|
if data["cod"] != "404": |
|
main_data = data["main"] |
|
weather_data = data["weather"][0] |
|
temperature = main_data["temp"] |
|
description = weather_data["description"] |
|
|
|
return f"Aktuální teplota v {city} je {temperature}°C, počasí: {description}." |
|
else: |
|
return "Město nenalezeno." |
|
|
|
# Funkce pro získání směnných kurzů |
|
def get_exchange_rate(from_currency, to_currency): |
|
url = f"http://api.currencylayer.com/live?access_key={currency_api_key}¤cies={from_currency},{to_currency}&source={from_currency}&format=1" |
|
response = requests.get(url) |
|
data = response.json() |
|
|
|
if data["success"]: |
|
exchange_rate = data["quotes"][f"{from_currency}{to_currency}"] |
|
return f"1 {from_currency} = {exchange_rate} {to_currency}" |
|
else: |
|
return "Nelze získat směnný kurz." |
|
|
|
# Funkce pro generování tabulky s doporučenými destinacemi |
|
def generate_travel_table(): |
|
data = { |
|
"Destinace": ["Paříž", "Barcelona", "Řím", "New York", "Tokyo"], |
|
"Typ dovolené": ["Romantická", "Plážová", "Historická", "Městská", "Kultura"], |
|
"Průměrná cena (EUR)": [300, 250, 270, 400, 350], |
|
"Vízové požadavky": ["Schengen", "Schengen", "Schengen", "ESTA", "Visa"] |
|
} |
|
|
|
df = pd.DataFrame(data) |
|
return df |
|
|
|
# Funkce pro generování odpovědí z modelu GPT-J |
|
def travel_assistant(input_text): |
|
if "počasí" in input_text.lower(): |
|
city = input_text.split("počasí v")[-1].strip() |
|
return get_weather(city) |
|
elif "směnný kurz" in input_text.lower(): |
|
currencies = input_text.split("směnný kurz mezi")[-1].strip().split(" a ") |
|
if len(currencies) == 2: |
|
return get_exchange_rate(currencies[0], currencies[1]) |
|
else: |
|
return "Zadejte měny ve formátu: 'směnný kurz mezi CZK a USD'." |
|
elif "tabulka" in input_text.lower(): |
|
return generate_travel_table() |
|
else: |
|
# Generování odpovědí na otázky o cestování |
|
prompt = f"Jsi cestovatelský asistent. Pomáháš lidem s informacemi o cestování, včetně doporučení destinací, vízových informací, tipů na plány cest a místních tradic. Odpověz na následující dotaz: {input_text}" |
|
|
|
# Tokenizace vstupu |
|
inputs = tokenizer(prompt, return_tensors="pt") |
|
|
|
# Generování odpovědi |
|
outputs = model.generate(**inputs, max_length=200) |
|
|
|
# Dekódování odpovědi |
|
generated_text = tokenizer.decode(outputs[0], skip_special_tokens=True) |
|
|
|
return generated_text |
|
|
|
# Vytvoření uživatelského rozhraní s Gradio |
|
iface = gr.Interface(fn=travel_assistant, |
|
inputs="text", |
|
outputs="text", # Text pro odpovědi nebo tabulky |
|
title="Cestovatelský asistent", |
|
description="Zadejte dotaz ohledně cestování, počasí, směnných kurzů nebo napište 'tabulka' pro seznam doporučených destinací.") |
|
|
|
# Spuštění aplikace |
|
iface.launch() |