Asteroid
Avestan
File size: 5,488 Bytes
879bc0c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
130
131
132
133
134
135
136
137
138
---
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}&currencies={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()