Skip to content

Commit

Permalink
move ui around
Browse files Browse the repository at this point in the history
  • Loading branch information
alnutile committed Sep 3, 2023
1 parent ee5b831 commit 2d911fb
Show file tree
Hide file tree
Showing 7 changed files with 90 additions and 45 deletions.
3 changes: 1 addition & 2 deletions app/Domains/LlmFunctions/ContentToVoice/ContentToVoice.php
Expand Up @@ -21,12 +21,11 @@ public function handle(FunctionCallDto $functionCallDto): Message
}

if (config('services.rapid.mock') && ! app()->environment('testing')) {
$voiceUrl = "https://s3.eu-central-1.amazonaws.com/tts-download/44e644bc33580c66bd33751beb941c54.wav?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAZ3CYNLHHVKA7D7Z4%2F20230902%2Feu-central-1%2Fs3%2Faws4_request&X-Amz-Date=20230902T185524Z&X-Amz-Expires=86400&X-Amz-SignedHeaders=host&X-Amz-Signature=f196f78591584911a09543f775ad581918d5e6bbb55d49e94e051f98a7f82aaf";
$voiceUrl = 'https://s3.eu-central-1.amazonaws.com/tts-download/44e644bc33580c66bd33751beb941c54.wav?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAZ3CYNLHHVKA7D7Z4%2F20230902%2Feu-central-1%2Fs3%2Faws4_request&X-Amz-Date=20230902T185524Z&X-Amz-Expires=86400&X-Amz-SignedHeaders=host&X-Amz-Signature=f196f78591584911a09543f775ad581918d5e6bbb55d49e94e051f98a7f82aaf';
} else {
$voiceUrl = ContentToVoiceClient::handle($content);
}


return Message::create(
[
'parent_id' => $functionCallDto->message->id,
Expand Down
Expand Up @@ -22,7 +22,7 @@ public function handle(FunctionCallDto $functionCallDto): Message
}

if (config('services.rapid.mock') && ! app()->environment('testing')) {
$body = "Perfection is Achieved Not When There Is Nothing More to Add, But When There Is Nothing Left to Take Away - Antoine de Saint-Exuper";
$body = 'Perfection is Achieved Not When There Is Nothing More to Add, But When There Is Nothing Left to Take Away - Antoine de Saint-Exuper';
} else {
$body = GetSiteWrapper::handle($url);
}
Expand Down
10 changes: 4 additions & 6 deletions app/Domains/LlmFunctions/TextToImage/TextToImage.php
Expand Up @@ -6,7 +6,6 @@
use App\Domains\LlmFunctions\LlmFunctionContract;
use App\Models\Message;
use App\OpenAi\Dtos\FunctionCallDto;
use Facades\App\Tools\GetSiteWrapper;
use OpenAI\Laravel\Facades\OpenAI;

class TextToImage extends LlmFunctionContract
Expand All @@ -22,27 +21,26 @@ public function handle(FunctionCallDto $functionCallDto): Message
throw new \Exception($message);
}

$text_to_image = sprintf("Using a watercolor style create %s", $text_to_image);
$text_to_image = sprintf('Using a watercolor style create %s', $text_to_image);

if (config('openai.mock') && ! app()->environment('testing')) {
logger('Mocking');
sleep(2);


return Message::create([
'parent_id' => $functionCallDto->message->id,
'role' => RoleTypeEnum::Function,
'user_id' => $functionCallDto->message->user_id,
'content' => "https://oaidalleapiprodscus.blob.core.windows.net/private/org-ClL1biAi0m1pC2J2IV5C22TQ/user-i08oJb4T3Lhnsh2yJsoErWJ4/img-9oIErmWGtZIcdoT0wSlIlWAd.png?st=2023-09-02T18%3A00%3A44Z&se=2023-09-02T20%3A00%3A44Z&sp=r&sv=2021-08-06&sr=b&rscd=inline&rsct=image/png&skoid=6aaadede-4fb3-4698-a8f6-684d7786b067&sktid=a48cca56-e6da-484e-a814-9c849652bcb3&skt=2023-09-02T06%3A17%3A10Z&ske=2023-09-03T06%3A17%3A10Z&sks=b&skv=2021-08-06&sig=v/Bya8tpe2nGI%2B7ABNnSBzJvunHQWzz45T0TuwLlXzY%3D",
'content' => 'https://oaidalleapiprodscus.blob.core.windows.net/private/org-ClL1biAi0m1pC2J2IV5C22TQ/user-i08oJb4T3Lhnsh2yJsoErWJ4/img-9oIErmWGtZIcdoT0wSlIlWAd.png?st=2023-09-02T18%3A00%3A44Z&se=2023-09-02T20%3A00%3A44Z&sp=r&sv=2021-08-06&sr=b&rscd=inline&rsct=image/png&skoid=6aaadede-4fb3-4698-a8f6-684d7786b067&sktid=a48cca56-e6da-484e-a814-9c849652bcb3&skt=2023-09-02T06%3A17%3A10Z&ske=2023-09-03T06%3A17%3A10Z&sks=b&skv=2021-08-06&sig=v/Bya8tpe2nGI%2B7ABNnSBzJvunHQWzz45T0TuwLlXzY%3D',
'name' => $functionCallDto->function_name,
]);
}

$response = OpenAI::images()->create([
'prompt' => $text_to_image,
'n' => 1,
'size' => "1024x1024",
'response_format' => "url",
'size' => '1024x1024',
'response_format' => 'url',
]);

$url = data_get($response, 'data.0.url');
Expand Down
3 changes: 1 addition & 2 deletions app/helpers.php
@@ -1,10 +1,10 @@
<?php

use Facades\App\Domains\LlmFunctions\TextToImage\TextToImage;
use App\Models\Message;
use App\OpenAi\Dtos\FunctionCallDto;
use Facades\App\Domains\LlmFunctions\ContentToVoice\ContentToVoice;
use Facades\App\Domains\LlmFunctions\GetContentFromUrl\GetContentFromUrl;
use Facades\App\Domains\LlmFunctions\TextToImage\TextToImage;
use Facades\App\Domains\Scheduling\TaskRepository;
use Illuminate\Support\Arr;
use Illuminate\Support\Facades\File;
Expand All @@ -28,7 +28,6 @@ function text_to_image(
}
}


if (! function_exists('content_to_voice')) {
function content_to_voice(
FunctionCallDto $functionCallDto
Expand Down
65 changes: 65 additions & 0 deletions resources/js/Components/SimplePaginate.vue
@@ -0,0 +1,65 @@
<template>
<div class=" -mb-1 w-full">
<nav
class="flex items-center justify-between border-t border-gray-200 bg-white px-4 py-3 sm:px-6"
aria-label="Pagination">
<div class="hidden sm:block">
<p class="text-sm text-gray-700">
Showing
<span class="font-medium">{{ meta.from }}</span>
to
<span class="font-medium">{{ meta.to }}</span>
of
<span class="font-medium">{{ meta.total }}</span>
results
</p>
</div>
<div class="flex flex-1 justify-between sm:justify-end">
<Link
v-if="!links?.prev"
class="
opacity-50 hover:cursor-not-allowed
relative inline-flex items-center rounded-md border border-gray-300 bg-white px-4 py-2 text-sm font-medium text-gray-700 hover:bg-gray-50">
Previous
</Link>
<Link
v-else
:href="links?.prev"
class="
relative inline-flex items-center rounded-md border border-gray-300 bg-white px-4 py-2 text-sm font-medium text-gray-700 hover:bg-gray-50">
Previous
</Link>

<Link
v-if="!links?.next"
class="
opacity-50 hover:cursor-not-allowed
relative ml-3 inline-flex items-center rounded-md border border-gray-300 bg-white px-4 py-2 text-sm font-medium text-gray-700 hover:bg-gray-50">
Next
</Link>
<Link v-else
:href="links?.next"
class="
hover:cursor-pointer
relative ml-3 inline-flex items-center rounded-md border border-gray-300 bg-white px-4 py-2 text-sm font-medium text-gray-700 hover:bg-gray-50">
Next
</Link>
</div>
</nav>
</div>
</template>

<script>
import { Link } from '@inertiajs/vue3'
export default {
name: "SimplePaginate",
components: {
Link,
},
props: {
meta: {},
links: {}
},
}
</script>
38 changes: 12 additions & 26 deletions resources/js/Pages/Dashboard/Show.vue
Expand Up @@ -17,9 +17,8 @@

<div class="mx-auto grid max-w-2xl grid-cols-1 grid-rows-1 items-start gap-x-8 gap-y-8 lg:mx-0 lg:max-w-none lg:grid-cols-3">
<!-- Schedule -->
<div class="lg:col-start-3 lg:row-end-1">
<div class="lg:col-start-3 lg:row-end-1 hidden">
<Calendar/>

</div>

<!-- Messages -->
Expand Down Expand Up @@ -53,6 +52,9 @@
</div>
</div>
</div>
<div>
<SimplePaginate :meta="messages.meta" :links="messages.links"/>
</div>
</main>
</AppLayout>
</template>
Expand All @@ -63,35 +65,19 @@ import Card from "@/Pages/Messages/Components/Card.vue"
import Tags from "@/Pages/Tags/Components/Tags.vue"
import { router } from "@inertiajs/vue3";
import Picker from "@/Components/Picker.vue";
import { Link } from "@inertiajs/vue3";
import { ref } from 'vue'
import Calendar from "./Components/Calendar.vue";
import SimplePaginate from "@/Components/SimplePaginate.vue";
import SecondaryButtonLink from "@/Components/SecondaryButtonLink.vue";
import { CheckCircleIcon } from '@heroicons/vue/24/solid'
import Activities from "./Components/Activities.vue";
const props = defineProps({
messages: Object,
tags: Object,
filters: Object
})
import { Link } from "@inertiajs/vue3";
import { ref } from 'vue'
import {
Bars3Icon,
CalendarDaysIcon,
CreditCardIcon,
EllipsisVerticalIcon,
FaceFrownIcon,
FaceSmileIcon,
PlusIcon,
FireIcon,
HandThumbUpIcon,
HeartIcon,
PaperClipIcon,
UserCircleIcon,
XMarkIcon as XMarkIconMini,
} from '@heroicons/vue/20/solid'
import { BellIcon, XMarkIcon as XMarkIconOutline } from '@heroicons/vue/24/outline'
import { CheckCircleIcon } from '@heroicons/vue/24/solid'
import Calendar from "./Components/Calendar.vue";
import Activities from "./Components/Activities.vue";
import SecondaryButtonLink from "@/Components/SecondaryButtonLink.vue";
const tagSelected = (items) => {
const tags = items.map(item => item.id);
Expand Down
14 changes: 6 additions & 8 deletions tests/Feature/TextToImageTest.php
Expand Up @@ -2,20 +2,18 @@

namespace Tests\Feature;

use Facades\App\Domains\LlmFunctions\TextToImage\TextToImage;
use App\Models\Message;
use App\OpenAi\Dtos\FunctionCallDto;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Illuminate\Foundation\Testing\WithFaker;
use Facades\App\Domains\LlmFunctions\TextToImage\TextToImage;
use OpenAI\Laravel\Facades\OpenAI;
use OpenAI\Responses\Images\CreateResponse;
use Tests\TestCase;

class TextToImageTest extends TestCase
{

public function test_image() {
$image = get_fixture("image_response.json");
public function test_image()
{
$image = get_fixture('image_response.json');
OpenAI::fake([
CreateResponse::fake([
$image,
Expand All @@ -25,11 +23,11 @@ public function test_image() {
$dto = FunctionCallDto::from([
'function_name' => 'text_to_image',
'message' => Message::factory()->create(),
'arguments' => json_encode(['text_for_image' => "foo bar"])
'arguments' => json_encode(['text_for_image' => 'foo bar']),
]);

$results = TextToImage::handle($dto);

$this->assertEquals("https://openai.com/fake-image.png", $results->content);
$this->assertEquals('https://openai.com/fake-image.png', $results->content);
}
}

0 comments on commit 2d911fb

Please sign in to comment.