Skip to content

Commit

Permalink
feature(Showcase): Initial draft of a playground
Browse files Browse the repository at this point in the history
Initial draft of a playground where people can test this plugin before coding. Need to refactor this week before release.
  • Loading branch information
PapaRascal2020 committed Sep 2, 2024
1 parent 7bfc04e commit ee35a78
Show file tree
Hide file tree
Showing 12 changed files with 429 additions and 3 deletions.
22 changes: 22 additions & 0 deletions resources/views/sidekick-examples/audio.blade.php

Large diffs are not rendered by default.

18 changes: 18 additions & 0 deletions resources/views/sidekick-examples/chat.blade.php

Large diffs are not rendered by default.

71 changes: 71 additions & 0 deletions resources/views/sidekick-examples/chatroom.blade.php

Large diffs are not rendered by default.

22 changes: 22 additions & 0 deletions resources/views/sidekick-examples/completion.blade.php

Large diffs are not rendered by default.

22 changes: 22 additions & 0 deletions resources/views/sidekick-examples/embedding.blade.php

Large diffs are not rendered by default.

20 changes: 20 additions & 0 deletions resources/views/sidekick-examples/image.blade.php

Large diffs are not rendered by default.

25 changes: 25 additions & 0 deletions resources/views/sidekick-examples/index.blade.php

Large diffs are not rendered by default.

22 changes: 22 additions & 0 deletions resources/views/sidekick-examples/moderate.blade.php

Large diffs are not rendered by default.

23 changes: 23 additions & 0 deletions resources/views/sidekick-examples/transcribe.blade.php

Large diffs are not rendered by default.

125 changes: 125 additions & 0 deletions routes/web.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,125 @@
<?php

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;
use \PapaRascalDev\Sidekick\Sidekick;
use \PapaRascalDev\Sidekick\Drivers\OpenAi;
use PapaRascalDev\Sidekick\SidekickConversation;

Route::get('/sidekick/playground', function () {
return view('sidekick::sidekick-examples.index');
});

Route::post('/sidekick/playground/chat', function (Request $request) {
$sidekick = new SidekickConversation(new OpenAi());

$conversation = $sidekick->begin(
model: 'gpt-3.5-turbo',
systemPrompt: 'Your Sidekick, a robot to chat to users'
);

$response = $conversation->sendMessage($request->get('message'));

return view('sidekick::sidekick-examples.chatroom', ['response' => $response]);
});

Route::post('/sidekick/playground/chat/update', function (Request $request) {
$sidekick = new SidekickConversation(new OpenAi());

$conversation = $sidekick->resume(
conversationId: $request->get('conversation_id')
);

$response = $conversation->sendMessage($request->get('message'));

return view('sidekick::sidekick-examples.chatroom', ['response' => $response]);
});

Route::get('/sidekick/playground/chat', function () {
return view('sidekick::sidekick-examples.chat');
});

Route::get('/sidekick/playground/completion', function () {
return view('sidekick::sidekick-examples.completion');
});

Route::post('/sidekick/playground/completion', function (Request $request) {
$sidekick = Sidekick::create(new OpenAi());
$response = $sidekick->complete()->sendMessage(
model: 'gpt-3.5-turbo',
systemPrompt: 'You are a knowledge base, please answer there questions',
messages:[['role' => 'user', 'content' => $request->get('message')]]
);

return view('sidekick::sidekick-examples.completion', ['response' => $sidekick->uniformedResponse($response)]);
});

Route::get('/sidekick/playground/audio', function () {
return view('sidekick::sidekick-examples.audio');
});

Route::post('/sidekick/playground/audio', function (Request $request) {
$sidekick = Sidekick::create(new OpenAi());

$audio = $sidekick->audio()->fromText(
model:'tts-1',
text: $request->get('text_to_convert')
);

return view('sidekick::sidekick-examples.audio', ['audio' => base64_encode($audio)]);
});

Route::post('/sidekick/playground/image', function (Request $request) {
$sidekick = Sidekick::create(new OpenAi());
$image = $sidekick->image()->make(
model:'dall-e-3',
prompt: $request->get('text_to_convert'),
width:'1024',
height:'1024'
);

return view('sidekick::sidekick-examples.image', ['image' => $image['data'][0]['url']]);
});

Route::get('/sidekick/playground/image', function () {
return view('sidekick::sidekick-examples.image');
});

Route::get('/sidekick/playground/transcribe', function () {
return view('sidekick::sidekick-examples.transcribe');
});

Route::post('/sidekick/playground/transcribe', function (Request $request) {
$sidekick = Sidekick::create(new OpenAi());
$response = $sidekick->transcribe()->audioFile(
model:'whisper-1',
filePath:$request->get('audio')
);
return view('sidekick::sidekick-examples.transcribe', ['response' => $response]);
});

Route::get('/sidekick/playground/embedding', function () {
return view('sidekick::sidekick-examples.embedding');
});

Route::post('/sidekick/playground/embedding', function (Request $request) {
$sidekick = Sidekick::create(new OpenAi());
$response = $sidekick->embedding()->make(
model:'text-embedding-3-large',
input: $request->get('text'),
);
return view('sidekick::sidekick-examples.embedding', ['response' => $response]);
});

Route::get('/sidekick/playground/moderate', function () {
return view('sidekick::sidekick-examples.moderate');
});

Route::post('/sidekick/playground/moderate', function (Request $request) {
$sidekick = Sidekick::create(new OpenAi());
$response = $sidekick->moderate()->text(
model:'text-moderation-latest',
content: $request->get('text')
);
return view('sidekick::sidekick-examples.moderate', ['response' => $response]);
});
1 change: 0 additions & 1 deletion src/Features/Completion.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
namespace PapaRascalDev\Sidekick\Features;

use Illuminate\Support\Facades\Http;
use phpDocumentor\Reflection\Types\Boolean;

class Completion
{
Expand Down
61 changes: 59 additions & 2 deletions src/SidekickServiceProvider.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ class SidekickServiceProvider extends ServiceProvider
/**
* Bootstrap the application services.
*/
public function boot()
public function boot(): void
{
if ($this->app->runningInConsole()) {
$this->publishes([
Expand All @@ -19,6 +19,15 @@ public function boot()

$this->initializeMigrations();
$this->initializeMigrationPublishing();

// $this->initializeControllers();
// $this->initializeControllersPublishing();

$this->initializeRoutes();
$this->initializeRoutesPublishing();

$this->initializeViews();
$this->initializeViewsPublishing();
}

/**
Expand Down Expand Up @@ -50,8 +59,56 @@ protected function initializeMigrationPublishing(): void
/**
* Register the application services.
*/
public function register()
public function register(): void
{
$this->mergeConfigFrom(__DIR__.'/../config/config.php', 'sidekick');
}

/**
* @return void
*/
private function initializeRoutes(): void
{
$this->loadRoutesFrom(__DIR__ . '/../routes/web.php');
}

/**
* @return void
*/
private function initializeRoutesPublishing(): void
{
$this->publishes([
__DIR__ . '/../routes/web.php' => base_path('routes/sidekick.php'),
], 'routes');
}

/**
* @return void
*/
private function initializeViews(): void
{
$this->loadViewsFrom(__DIR__ . '/../resources/views', 'sidekick');
}

/**
* @return void
*/
private function initializeViewsPublishing(): void
{
$this->publishes([
__DIR__ . '/../resources/views' => resource_path('views/vendor/sidekick'),
], 'views');
}

private function initializeControllers()
{
}

private function initializeControllersPublishing(): void
{
$this->publishes([
__DIR__ . '/../src/Controllers' => app_path('Http/Controllers/Vendor/Sidekick'),
], 'controllers');
}

}

0 comments on commit ee35a78

Please sign in to comment.