mempool weather added

This commit is contained in:
HolgerHatGarKeineNode
2023-04-01 10:06:15 +02:00
parent 52da742d66
commit 4df2074477
2 changed files with 33 additions and 22 deletions

View File

@@ -4,6 +4,7 @@ namespace App\Console\Commands\MempoolSpace;
use Illuminate\Console\Command; use Illuminate\Console\Command;
use Illuminate\Support\Facades\Http; use Illuminate\Support\Facades\Http;
use Illuminate\Support\Facades\Log;
use OpenAI; use OpenAI;
class CacheRecommendedFees extends Command class CacheRecommendedFees extends Command
@@ -25,27 +26,31 @@ class CacheRecommendedFees extends Command
*/ */
public function handle(): void public function handle(): void
{ {
$apiKey = config('services.open-ai.apiKey'); try {
$client = OpenAI::client($apiKey); $apiKey = config('services.open-ai.apiKey');
$client = OpenAI::client($apiKey);
$result = Http::get('https://mempool.space/api/v1/fees/recommended'); $result = Http::get('https://mempool.space/api/v1/fees/recommended');
$result = $result->json(); $result = $result->json();
$result = $client->completions() $result = $client->completions()
->create([ ->create([
'model' => 'text-davinci-003', 'model' => 'text-davinci-003',
'prompt' => sprintf('Erstelle einen Wetterbericht für den Bitcoin Mempool mit folgenden Gebühren: fastestFee: %s sat/vB, halfHourFee: %s sat/vB, hourFee: %s sat/vB, economyFee: %s sat/vB, minimumFee: %s sat/vB. Fasse mit maximal 400 Zeichen zusammen und schreibe im Stile eines Wetterberichtes aus dem Fernsehen um. Schreibe nichts von schnellen Gebühren, sondern interpretiere die Gebühren anders. Schreibe auch nichts von schnellen Gebühren. Alle Gebühren über 40 ist krass heiß. Gebühren über 20 sind übermäßig warm. Gebühren über 10 sind normal warm. Und Gebühren unter 2 sind sehr kalt.', 'prompt' => sprintf('Erstelle einen Wetterbericht für den Bitcoin Mempool mit folgenden Gebühren: fastestFee: %s sat/vB, halfHourFee: %s sat/vB, hourFee: %s sat/vB, economyFee: %s sat/vB, minimumFee: %s sat/vB. Fasse mit maximal 400 Zeichen zusammen und schreibe im Stile eines Wetterberichtes aus dem Fernsehen um. Schreibe nichts von schnellen Gebühren, sondern interpretiere die Gebühren anders. Schreibe auch nichts von schnellen Gebühren. Alle Gebühren über 40 ist krass heiß. Gebühren über 20 sind übermäßig warm. Gebühren über 10 sind normal warm. Und Gebühren unter 2 sind sehr kalt.',
$result['fastestFee'], $result['fastestFee'],
$result['halfHourFee'], $result['halfHourFee'],
$result['hourFee'], $result['hourFee'],
$result['economyFee'], $result['economyFee'],
$result['minimumFee'] $result['minimumFee']
), ),
'max_tokens' => 400, 'max_tokens' => 400,
'temperature' => 1 'temperature' => 1
]); ]);
cache()->put('mempool-weather', $result['choices'][0]['text'], now()->addMinutes(62)); cache()->put('mempool-weather', $result['choices'][0]['text'], now()->addMinutes(62));
cache()->put('mempool-weather-changed', now()->toDateTimeString(), now()->addMinutes(62)); cache()->put('mempool-weather-changed', now()->toDateTimeString(), now()->addMinutes(62));
} catch (\Exception $exception) {
Log::error($exception->getMessage());
}
} }
} }

View File

@@ -32,9 +32,15 @@
Blockhöhe <span class="font-bold text-2xl ml-4" x-text="height && height.toLocaleString('de-DE')"></span> Blockhöhe <span class="font-bold text-2xl ml-4" x-text="height && height.toLocaleString('de-DE')"></span>
</span> </span>
</div> </div>
<div class="text-md leading-6 text-gray-900 text-center max-w-screen-2xl"> @if(!empty($weather))
{{ $weather }} (um {{ \App\Support\Carbon::parse($changed)->asTime() }} Uhr aktualisiert - stündlich) <div class="text-md leading-6 text-gray-900 text-center max-w-screen-2xl">
</div> {{ $weather }} (um {{ \App\Support\Carbon::parse($changed)->asTime() }} Uhr aktualisiert - stündlich)
</div>
@else
<div class="text-md leading-6 text-gray-900 text-center max-w-screen-2xl">
Wetterdaten werden in Kürze wieder verfügbar sein. (OpenAI Quota exceeded)
</div>
@endif
<div <div
x-data="{ x-data="{
fastestFee: null, fastestFee: null,