Notes
Notes - notes.io |
ChatGPT.Domain:
Domain katmanı, uygulamanın iş kurallarını, nesnelerini ve davranışlarını içerir. Bu katman, temel veri yapılarının ve iş mantığının tanımlandığı yerdir.
1-Common Klasörü
Bu klasörde genel kullanılabilir ve tekrar eden işlevler, arayüzler ve sınıflar bulunur.
a) EntityBase, veritabanında tutulan her varlık (entity) için temel özellikleri sağlar. Bu sınıf, tüm varlıklarda tekrar eden özellikleri barındırır ve abstract (soyut) olduğu için doğrudan kullanılamaz, ancak başka sınıflar tarafından genişletilir. (Id, CreatedOn, CreatedByUserId, ModifiedOn, ModifiedByUserId)
b) ICreatedByEntity Arayüzü: Bu arayüz, varlığın oluşturulma zamanını ve kimin tarafından oluşturulduğunu kaydeder. Bu arayüzü implemente eden sınıflar, bir varlığın ne zaman oluşturulduğunu ve kim tarafından oluşturulduğunu belirtir. (CreatedOn, CreatedByUserId)
c) IEntity Arayüzü : Her varlık için bir kimlik özelliği (Id) sağlar.
d) IModifiedByEntity Arayüzü: Bir varlığın son ne zaman ve kim tarafından güncellendiğini izlemek için kullanılır. (ModifiedOn, ModifiedByUserId)
2- Entities Klasörü
Bu klasörde sistemin temel iş nesneleri bulunur. Bu nesneler, domain katmanındaki en önemli veri yapılarıdır.
a) ChatSession Sınıfı
ChatSession, bir kullanıcının yaptığı sohbet oturumunu temsil eder. Bu oturum, bir başlığa (Title) ve kullanılan GPT modeline (Model) sahiptir.
Threads: Sohbet oturumundaki mesaj dizilerini içerir. Birden fazla mesajı içerebilecek bir liste yapısıdır.
AppUserId: Bu oturumun hangi kullanıcıya ait olduğunu gösterir. Kullanıcı ile bu sohbet oturumu arasında bir ilişki kurar.
EntityBase'den kalıtım: Tüm varlık özelliklerini miras alır (kimlik, oluşturulma/güncellenme bilgileri).
3-Enums Klasörü
Bu klasörde, uygulamanın farklı bölümlerinde kullanılabilecek sabit değerler tanımlanır. Bu sabitler, belirli bir bağlamda anlam ifade eden kategorik değerlerdir.
a) ChatMessageType Enum'ı:
Bu enum, sohbet mesajlarının türünü belirtir:
System: GPT modeline gönderilen sistem mesajları.
User: Kullanıcı tarafından gönderilen mesajlar.
Assistant: GPT modeli tarafından oluşturulan yanıtlar (asistan mesajları).
b) GptModelType Enum'ı:
Bu enum, kullanılan GPT modelinin türünü belirtir. Her bir model farklı bir kapasiteye veya performansa sahip olabilir:
GPT4o: Orijinal GPT-4 modeli.
GPT4oMini: Daha küçük ve optimize edilmiş bir GPT-4 modeli.
GPT4: GPT-4 modelinin bir başka versiyonu.
4- ValueObjects Klasörü
Value objects (değer nesneleri), kendine özgü kimliği olmayan, ancak iş mantığı açısından önemli olan nesnelerdir. Bu nesneler değişmez ve genellikle küçük bilgi gruplarını temsil ederler.
a) ChatMessage Sınıfı:
ChatMessage, bir sohbet mesajını temsil eder:
Id: Mesajın benzersiz kimliği.
Model: Mesajın oluşturulmasında kullanılan GPT modelinin türü.
Type: Mesajın türü (kullanıcı, asistan veya sistem mesajı).
Content: Mesajın içeriği (metni).
CreatedOn: Mesajın oluşturulma zamanı.
b) ChatThread Sınıfı
ChatThread, bir sohbet dizisini temsil eder:
Id: Sohbet dizisinin benzersiz kimliği.
Messages: Bu diziye ait mesajların listesi.
CreatedOn: Sohbet dizisinin ne zaman oluşturulduğunu gösterir.
![]() |
Notes is a web-based application for online taking notes. You can take your notes and share with others people. If you like taking long notes, notes.io is designed for you. To date, over 8,000,000,000+ notes created and continuing...
With notes.io;
- * You can take a note from anywhere and any device with internet connection.
- * You can share the notes in social platforms (YouTube, Facebook, Twitter, instagram etc.).
- * You can quickly share your contents without website, blog and e-mail.
- * You don't need to create any Account to share a note. As you wish you can use quick, easy and best shortened notes with sms, websites, e-mail, or messaging services (WhatsApp, iMessage, Telegram, Signal).
- * Notes.io has fabulous infrastructure design for a short link and allows you to share the note as an easy and understandable link.
Fast: Notes.io is built for speed and performance. You can take a notes quickly and browse your archive.
Easy: Notes.io doesn’t require installation. Just write and share note!
Short: Notes.io’s url just 8 character. You’ll get shorten link of your note when you want to share. (Ex: notes.io/q )
Free: Notes.io works for 14 years and has been free since the day it was started.
You immediately create your first note and start sharing with the ones you wish. If you want to contact us, you can use the following communication channels;
Email: [email protected]
Twitter: http://twitter.com/notesio
Instagram: http://instagram.com/notes.io
Facebook: http://facebook.com/notesio
Regards;
Notes.io Team
