From d0afd830ac494a1faa707570925f5f9e7a71dade Mon Sep 17 00:00:00 2001 From: wickedOne Date: Sat, 14 Dec 2024 09:33:15 +0100 Subject: [PATCH 1/2] moving classes to a more component like structure - add Wikipedia and YouTube namespace and moved applicable classes. this way the code is clustered by implementation making it easier to copy paste it to your own application. --- src/Command/BlogEmbedCommand.php | 2 +- src/{ => Rag}/Blog/Embedder.php | 2 +- src/{ => Rag}/Blog/Loader.php | 2 +- src/{ => Rag}/Blog/Post.php | 2 +- src/{ => Rag}/Chat/Rag.php | 2 +- src/{ => Rag}/Twig/RagComponent.php | 4 ++-- src/{ => Wikipedia}/Chat/Wikipedia.php | 2 +- src/{ => Wikipedia}/Twig/WikipediaComponent.php | 4 ++-- src/{ => YouTube}/Chat/YouTube.php | 2 +- src/{ => YouTube}/Twig/YouTubeComponent.php | 4 ++-- tests/{ => Rag}/Blog/LoaderTest.php | 6 +++--- tests/{ => Rag}/Blog/PostTest.php | 4 ++-- tests/{ => Rag}/Blog/fixtures/blog.rss | 0 13 files changed, 18 insertions(+), 18 deletions(-) rename src/{ => Rag}/Blog/Embedder.php (96%) rename src/{ => Rag}/Blog/Loader.php (98%) rename src/{ => Rag}/Blog/Post.php (98%) rename src/{ => Rag}/Chat/Rag.php (98%) rename src/{ => Rag}/Twig/RagComponent.php (94%) rename src/{ => Wikipedia}/Chat/Wikipedia.php (98%) rename src/{ => Wikipedia}/Twig/WikipediaComponent.php (92%) rename src/{ => YouTube}/Chat/YouTube.php (98%) rename src/{ => YouTube}/Twig/YouTubeComponent.php (96%) rename tests/{ => Rag}/Blog/LoaderTest.php (96%) rename tests/{ => Rag}/Blog/PostTest.php (96%) rename tests/{ => Rag}/Blog/fixtures/blog.rss (100%) diff --git a/src/Command/BlogEmbedCommand.php b/src/Command/BlogEmbedCommand.php index 27affd9..03efd11 100644 --- a/src/Command/BlogEmbedCommand.php +++ b/src/Command/BlogEmbedCommand.php @@ -4,7 +4,7 @@ namespace App\Command; -use App\Blog\Embedder; +use App\Rag\Blog\Embedder; use Symfony\Component\Console\Attribute\AsCommand; use Symfony\Component\Console\Command\Command; use Symfony\Component\Console\Input\InputInterface; diff --git a/src/Blog/Embedder.php b/src/Rag/Blog/Embedder.php similarity index 96% rename from src/Blog/Embedder.php rename to src/Rag/Blog/Embedder.php index 86343fd..6776b8b 100644 --- a/src/Blog/Embedder.php +++ b/src/Rag/Blog/Embedder.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace App\Blog; +namespace App\Rag\Blog; use PhpLlm\LlmChain\Document\Metadata; use PhpLlm\LlmChain\Document\TextDocument; diff --git a/src/Blog/Loader.php b/src/Rag/Blog/Loader.php similarity index 98% rename from src/Blog/Loader.php rename to src/Rag/Blog/Loader.php index 866e7cc..a97fa8f 100644 --- a/src/Blog/Loader.php +++ b/src/Rag/Blog/Loader.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace App\Blog; +namespace App\Rag\Blog; use Symfony\Component\DomCrawler\Crawler; use Symfony\Component\Uid\Uuid; diff --git a/src/Blog/Post.php b/src/Rag/Blog/Post.php similarity index 98% rename from src/Blog/Post.php rename to src/Rag/Blog/Post.php index 6aff1ac..69d6ab2 100644 --- a/src/Blog/Post.php +++ b/src/Rag/Blog/Post.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace App\Blog; +namespace App\Rag\Blog; use Symfony\Component\Uid\Uuid; diff --git a/src/Chat/Rag.php b/src/Rag/Chat/Rag.php similarity index 98% rename from src/Chat/Rag.php rename to src/Rag/Chat/Rag.php index 22528ed..9baed9f 100644 --- a/src/Chat/Rag.php +++ b/src/Rag/Chat/Rag.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace App\Chat; +namespace App\Rag\Chat; use PhpLlm\LlmChain\ChainInterface; use PhpLlm\LlmChain\Model\Message\Message; diff --git a/src/Twig/RagComponent.php b/src/Rag/Twig/RagComponent.php similarity index 94% rename from src/Twig/RagComponent.php rename to src/Rag/Twig/RagComponent.php index b64559b..fd73fa0 100644 --- a/src/Twig/RagComponent.php +++ b/src/Rag/Twig/RagComponent.php @@ -2,9 +2,9 @@ declare(strict_types=1); -namespace App\Twig; +namespace App\Rag\Twig; -use App\Chat\Rag; +use App\Rag\Chat\Rag; use PhpLlm\LlmChain\Model\Message\MessageBag; use Symfony\UX\LiveComponent\Attribute\AsLiveComponent; use Symfony\UX\LiveComponent\Attribute\LiveAction; diff --git a/src/Chat/Wikipedia.php b/src/Wikipedia/Chat/Wikipedia.php similarity index 98% rename from src/Chat/Wikipedia.php rename to src/Wikipedia/Chat/Wikipedia.php index ca5f4d1..10734ef 100644 --- a/src/Chat/Wikipedia.php +++ b/src/Wikipedia/Chat/Wikipedia.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace App\Chat; +namespace App\Wikipedia\Chat; use PhpLlm\LlmChain\ChainInterface; use PhpLlm\LlmChain\Model\Message\Message; diff --git a/src/Twig/WikipediaComponent.php b/src/Wikipedia/Twig/WikipediaComponent.php similarity index 92% rename from src/Twig/WikipediaComponent.php rename to src/Wikipedia/Twig/WikipediaComponent.php index c7201ba..0c0489c 100644 --- a/src/Twig/WikipediaComponent.php +++ b/src/Wikipedia/Twig/WikipediaComponent.php @@ -2,9 +2,9 @@ declare(strict_types=1); -namespace App\Twig; +namespace App\Wikipedia\Twig; -use App\Chat\Wikipedia; +use App\Wikipedia\Chat\Wikipedia; use PhpLlm\LlmChain\Model\Message\MessageBag; use Symfony\UX\LiveComponent\Attribute\AsLiveComponent; use Symfony\UX\LiveComponent\Attribute\LiveAction; diff --git a/src/Chat/YouTube.php b/src/YouTube/Chat/YouTube.php similarity index 98% rename from src/Chat/YouTube.php rename to src/YouTube/Chat/YouTube.php index ec731d3..ea69f4e 100644 --- a/src/Chat/YouTube.php +++ b/src/YouTube/Chat/YouTube.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace App\Chat; +namespace App\YouTube\Chat; use App\YouTube\TranscriptFetcher; use PhpLlm\LlmChain\ChainInterface; diff --git a/src/Twig/YouTubeComponent.php b/src/YouTube/Twig/YouTubeComponent.php similarity index 96% rename from src/Twig/YouTubeComponent.php rename to src/YouTube/Twig/YouTubeComponent.php index c246bcf..dd09894 100644 --- a/src/Twig/YouTubeComponent.php +++ b/src/YouTube/Twig/YouTubeComponent.php @@ -2,9 +2,9 @@ declare(strict_types=1); -namespace App\Twig; +namespace App\YouTube\Twig; -use App\Chat\YouTube; +use App\YouTube\Chat\YouTube; use PhpLlm\LlmChain\Model\Message\MessageBag; use Psr\Log\LoggerInterface; use Symfony\UX\LiveComponent\Attribute\AsLiveComponent; diff --git a/tests/Blog/LoaderTest.php b/tests/Rag/Blog/LoaderTest.php similarity index 96% rename from tests/Blog/LoaderTest.php rename to tests/Rag/Blog/LoaderTest.php index 31f42f0..201296f 100644 --- a/tests/Blog/LoaderTest.php +++ b/tests/Rag/Blog/LoaderTest.php @@ -2,10 +2,10 @@ declare(strict_types=1); -namespace App\Tests\Blog; +namespace App\Tests\Rag\Blog; -use App\Blog\Loader; -use App\Blog\Post; +use App\Rag\Blog\Loader; +use App\Rag\Blog\Post; use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\Attributes\UsesClass; use PHPUnit\Framework\TestCase; diff --git a/tests/Blog/PostTest.php b/tests/Rag/Blog/PostTest.php similarity index 96% rename from tests/Blog/PostTest.php rename to tests/Rag/Blog/PostTest.php index 866f3f2..b24e0fe 100644 --- a/tests/Blog/PostTest.php +++ b/tests/Rag/Blog/PostTest.php @@ -2,9 +2,9 @@ declare(strict_types=1); -namespace App\Tests\Blog; +namespace App\Tests\Rag\Blog; -use App\Blog\Post; +use App\Rag\Blog\Post; use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\TestCase; use Symfony\Component\Uid\Uuid; diff --git a/tests/Blog/fixtures/blog.rss b/tests/Rag/Blog/fixtures/blog.rss similarity index 100% rename from tests/Blog/fixtures/blog.rss rename to tests/Rag/Blog/fixtures/blog.rss From 60054101e9c95eea1f3f2f732f3e4b8336762ee3 Mon Sep 17 00:00:00 2001 From: wickedOne Date: Sat, 14 Dec 2024 11:27:09 +0100 Subject: [PATCH 2/2] rename rag to blog - rename add to blog to clarify the implementation --- src/{Rag/Chat/Rag.php => Blog/Chat/Blog.php} | 4 ++-- src/{ => Blog}/Command/BlogEmbedCommand.php | 4 ++-- src/{Rag => }/Blog/Embedder.php | 2 +- src/{Rag => }/Blog/Loader.php | 2 +- src/{Rag => }/Blog/Post.php | 2 +- .../Twig/RagComponent.php => Blog/Twig/BlogComponent.php} | 8 ++++---- tests/{Rag => }/Blog/LoaderTest.php | 6 +++--- tests/{Rag => }/Blog/PostTest.php | 4 ++-- tests/{Rag => }/Blog/fixtures/blog.rss | 0 9 files changed, 16 insertions(+), 16 deletions(-) rename src/{Rag/Chat/Rag.php => Blog/Chat/Blog.php} (97%) rename src/{ => Blog}/Command/BlogEmbedCommand.php (94%) rename src/{Rag => }/Blog/Embedder.php (96%) rename src/{Rag => }/Blog/Loader.php (98%) rename src/{Rag => }/Blog/Post.php (98%) rename src/{Rag/Twig/RagComponent.php => Blog/Twig/BlogComponent.php} (87%) rename tests/{Rag => }/Blog/LoaderTest.php (96%) rename tests/{Rag => }/Blog/PostTest.php (96%) rename tests/{Rag => }/Blog/fixtures/blog.rss (100%) diff --git a/src/Rag/Chat/Rag.php b/src/Blog/Chat/Blog.php similarity index 97% rename from src/Rag/Chat/Rag.php rename to src/Blog/Chat/Blog.php index 9baed9f..44b8c69 100644 --- a/src/Rag/Chat/Rag.php +++ b/src/Blog/Chat/Blog.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace App\Rag\Chat; +namespace App\Blog\Chat; use PhpLlm\LlmChain\ChainInterface; use PhpLlm\LlmChain\Model\Message\Message; @@ -11,7 +11,7 @@ use Symfony\Component\DependencyInjection\Attribute\Autowire; use Symfony\Component\HttpFoundation\RequestStack; -final class Rag +final class Blog { private const SESSION_KEY = 'rag-chat'; diff --git a/src/Command/BlogEmbedCommand.php b/src/Blog/Command/BlogEmbedCommand.php similarity index 94% rename from src/Command/BlogEmbedCommand.php rename to src/Blog/Command/BlogEmbedCommand.php index 03efd11..81ec7aa 100644 --- a/src/Command/BlogEmbedCommand.php +++ b/src/Blog/Command/BlogEmbedCommand.php @@ -2,9 +2,9 @@ declare(strict_types=1); -namespace App\Command; +namespace App\Blog\Command; -use App\Rag\Blog\Embedder; +use App\Blog\Embedder; use Symfony\Component\Console\Attribute\AsCommand; use Symfony\Component\Console\Command\Command; use Symfony\Component\Console\Input\InputInterface; diff --git a/src/Rag/Blog/Embedder.php b/src/Blog/Embedder.php similarity index 96% rename from src/Rag/Blog/Embedder.php rename to src/Blog/Embedder.php index 6776b8b..86343fd 100644 --- a/src/Rag/Blog/Embedder.php +++ b/src/Blog/Embedder.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace App\Rag\Blog; +namespace App\Blog; use PhpLlm\LlmChain\Document\Metadata; use PhpLlm\LlmChain\Document\TextDocument; diff --git a/src/Rag/Blog/Loader.php b/src/Blog/Loader.php similarity index 98% rename from src/Rag/Blog/Loader.php rename to src/Blog/Loader.php index a97fa8f..866e7cc 100644 --- a/src/Rag/Blog/Loader.php +++ b/src/Blog/Loader.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace App\Rag\Blog; +namespace App\Blog; use Symfony\Component\DomCrawler\Crawler; use Symfony\Component\Uid\Uuid; diff --git a/src/Rag/Blog/Post.php b/src/Blog/Post.php similarity index 98% rename from src/Rag/Blog/Post.php rename to src/Blog/Post.php index 69d6ab2..6aff1ac 100644 --- a/src/Rag/Blog/Post.php +++ b/src/Blog/Post.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace App\Rag\Blog; +namespace App\Blog; use Symfony\Component\Uid\Uuid; diff --git a/src/Rag/Twig/RagComponent.php b/src/Blog/Twig/BlogComponent.php similarity index 87% rename from src/Rag/Twig/RagComponent.php rename to src/Blog/Twig/BlogComponent.php index fd73fa0..ae92d6c 100644 --- a/src/Rag/Twig/RagComponent.php +++ b/src/Blog/Twig/BlogComponent.php @@ -2,9 +2,9 @@ declare(strict_types=1); -namespace App\Rag\Twig; +namespace App\Blog\Twig; -use App\Rag\Chat\Rag; +use App\Blog\Chat\Blog; use PhpLlm\LlmChain\Model\Message\MessageBag; use Symfony\UX\LiveComponent\Attribute\AsLiveComponent; use Symfony\UX\LiveComponent\Attribute\LiveAction; @@ -12,12 +12,12 @@ use Symfony\UX\LiveComponent\DefaultActionTrait; #[AsLiveComponent('rag')] -final class RagComponent +final class BlogComponent { use DefaultActionTrait; public function __construct( - private readonly Rag $chat, + private readonly Blog $chat, ) { } diff --git a/tests/Rag/Blog/LoaderTest.php b/tests/Blog/LoaderTest.php similarity index 96% rename from tests/Rag/Blog/LoaderTest.php rename to tests/Blog/LoaderTest.php index 201296f..31f42f0 100644 --- a/tests/Rag/Blog/LoaderTest.php +++ b/tests/Blog/LoaderTest.php @@ -2,10 +2,10 @@ declare(strict_types=1); -namespace App\Tests\Rag\Blog; +namespace App\Tests\Blog; -use App\Rag\Blog\Loader; -use App\Rag\Blog\Post; +use App\Blog\Loader; +use App\Blog\Post; use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\Attributes\UsesClass; use PHPUnit\Framework\TestCase; diff --git a/tests/Rag/Blog/PostTest.php b/tests/Blog/PostTest.php similarity index 96% rename from tests/Rag/Blog/PostTest.php rename to tests/Blog/PostTest.php index b24e0fe..866f3f2 100644 --- a/tests/Rag/Blog/PostTest.php +++ b/tests/Blog/PostTest.php @@ -2,9 +2,9 @@ declare(strict_types=1); -namespace App\Tests\Rag\Blog; +namespace App\Tests\Blog; -use App\Rag\Blog\Post; +use App\Blog\Post; use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\TestCase; use Symfony\Component\Uid\Uuid; diff --git a/tests/Rag/Blog/fixtures/blog.rss b/tests/Blog/fixtures/blog.rss similarity index 100% rename from tests/Rag/Blog/fixtures/blog.rss rename to tests/Blog/fixtures/blog.rss