Program
Ürün fikirlerinizi veya reklamlarınızı test ettiğiniz bir toplantıyı hiç simüle etmeniz gerekti mi? TinyTroupe bu sorunu çözüyor.
TinyTroupe, Microsoft tarafından geliştirilen açık kaynaklı bir ajansal çerçevedir. Birden fazla yapay zekâ destekli persona oluşturup birbirleriyle nasıl etkileştiklerini görmenizi sağlayan güçlü bir simülasyon altyapısı sunar.
Bu yazıda TinyTroupe’u açıklayacak ve etkileşimli bir ortamda gerçekçi personelar oluşturmayı anlamanıza yardımcı olacak bir demo proje uygulayacağım. Resmî belgeler kapsamlı bir giriş sunsa da ben adım adım yönlendirmeye ve özgün örneklere odaklanacağım.
Yapay Zeka Uygulamaları Geliştirin
TinyTroupe Nedir?
TinyTroupe, belirli kişiliklere, ilgi alanlarına ve hedeflere sahip “TinyPerson”lar oluşturmanızı sağlayan, yakın zamanda yayımlanmış deneysel LLM tabanlı bir Python kütüphanesidir. Bu ajanlar, belirli koşullar altında gerçekçi insan davranışını simüle etmeyi amaçlar.
TinyTroupe, tanımlanmış koşullar altındaki insansı ajanların etkileşimlerinin, diyaloglarının ve eylemlerinin simüle edildiği bir ortam sağlamayı hedefler. Resmî belgeler bu çerçevenin neden kullanılacağına dair çeşitli fikirler sunar; bunların çoğu, bir odak grubunun beyin fırtınasını simüle etmek veya dijital reklamların simüle edilmiş bir kitle tarafından nasıl değerlendirileceğini görmek gibi, üretkenliği artırma ve iş senaryolarını test etme etrafında döner.
İş odaklı kullanım örneklerinin yanı sıra, farklı senaryoları simüle etmek ve normalde mümkün olmayan karakterler arası etkileşimleri gözlemlemek (bu yazıda yapacağımız gibi) hem ilgi çekici hem de eğlencelidir.

Kaynak: TinyTroupe GitHub sayfası
TinyTroupe’un başlıca özellikleri şunlardır:
- Persona tabanlı tasarım: Her simüle edilen kişi (
TinyPerson), yaş, geçmiş, meslek, beceriler ve görüşler dahil olmak üzere ayrıntılı özelliklerle tanımlanabilir. - Çoklu ajan etkileşimleri: Personalar, karmaşık senaryo simülasyonları için birbirleriyle etkileşime girebilir.
Bu ajanları oluşturma sürecini iyileştirmek için TinyTroupe aşağıdaki yetenekleri sunar:
- TinyPersonFactory: Kısa bir açıklama verildiğinde TinyPerson’ları hızlıca üretmeye yarayan bir sınıf.
from tinytroupe.factory import TinyPersonFactory
factory = TinyPersonFactory("A hospital in São Paulo.")
person = factory.generate_person("Create a Brazilian person that is a doctor, like pets and the nature and love heavy metal.")
- Ajan yetenekleri: listen() ve listen_and_act() gibi uyaran alma ve eyleme geçme yöntemleri. define() yöntemi ise yaş veya açıklamalar gibi isteğe bağlı özellikler ve nitelikler oluşturmayı sağlar.
- TinyTool: Ajanlar tarafından kullanılabilecek simüle araçlar oluşturmak için bir sınıf.
- Değerlendirme: Ajanların davranışlarını doğrulamak veya etkileşimlerin çıktısını analiz etmek için sınıflar (ör. TinyPersonValidator ve ResultsExtractor)
TinyTroupe’un Kurulumu
TinyTroupe’u kurmak için şu adımları izleyebiliriz:
1. Bir Python ortamı oluşturun:
conda create -n tinytroupe python=3.10
2. Conda’yı etkinleştirin:
bash conda activate tinytroupe
3. Depoyu klonlayın:
git clone <https://github.com/microsoft/tinytroupe>
cd tinytroupe
4. Gerekli kütüphaneleri kurun:
bash pip install .
TinyTroupe Örnek Projesi: Yapay Zekâ Sempozyumu
TinyTroupe’un nasıl çalıştığını göstermek için basit bir simülasyon kuracağız. Amaç, bazı tarihî figürler ve uzmanların yapay zekânın bugünü ve geleceği hakkında tartışmasıdır. Bu figürler arasında Richard Feynman, Aristoteles, Erwin Schrödinger ve Alan Turing yer alır.
İçe Aktarmalar
Takip etmek isterseniz OpenAI API anahtarınızı hazır bulundurun; GPT-4o kullanacağız—OpenAI’nin API’siyle başlarken hızlı bir eğitim burada.
Gerekli modülleri ve API anahtarımızı içe aktararak başlıyoruz.
import sys
sys.path.append('..')
from tinytroupe.agent import TinyPerson
from tinytroupe.environment import TinyWorld
from tinytroupe.extraction import default_extractor as extractor
import os
# Load environment variables from .env.local
os.environ["OPENAI_API_KEY"] = "YOUR-API-KEY"
TinyPerson’lar Oluşturma
TinyPerson sınıfını dört figürümüzü oluşturmak için kullanıyoruz. Karakterlerinizi olabildiğince ayrıntılı tanımlamak, TinyTroupe’un daha doğru simülasyonlar üretmesine yardımcı olur. Her bir figürün yaşını, milliyetini, mesleğini ve rutinini açıklıyoruz (bu kısımda yapay zekâdan yararlanabilirsiniz). Karakter tanımlarının tümünde tutarlı olması gerekmediğine dikkat edin.
Aşağıdaki kodla dört kişilik oluşturuyoruz:
- Richard Feynman
- Aristoteles
- Erwin Schrödinger
- Alan Turing
def create_feynman():
feynman = TinyPerson("Richard Feynman")
feynman.define("age", 69) # Lived 1918-1988
feynman.define("nationality", "American")
feynman.define("occupation", "Theoretical Physicist")
feynman.define("occupation_description",
"""
You are a theoretical physicist known for your groundbreaking work in quantum mechanics and
quantum electrodynamics (QED). You developed the Feynman diagrams, a visual tool for understanding
particle interactions, and made significant contributions to the Manhattan Project. As a professor
at Caltech, you're known for your exceptional teaching ability and making complex physics concepts
accessible. You won the Nobel Prize in Physics in 1965 for your work on QED. Your main challenges
involve pushing the boundaries of theoretical physics while maintaining rigorous mathematical precision.
You're also passionate about making science education engaging and understandable for students.
""")
return feynman
def create_aristotle():
aristotle = TinyPerson("Aristotle")
aristotle.define("age", 62)
aristotle.define("nationality", "Greek")
aristotle.define("occupation", "Philosopher and Scientist")
aristotle.define("occupation_description",
"""
You are a philosopher and polymath who founded the Lyceum school in Athens. Your work spans
multiple disciplines including logic, metaphysics, biology, physics, ethics, and politics. You
developed the system of deductive reasoning through syllogisms and established many of the
foundational principles of Western philosophy. Your scientific observations and classifications
of living things remained influential for nearly two millennia. As Alexander the Great's tutor,
you had unique opportunities to gather specimens and information from across the known world.
Your main challenges involve systematizing all human knowledge and understanding the fundamental
nature of reality and truth.
""")
return aristotle
def create_schrodinger():
schrodinger = TinyPerson("Erwin Schrödinger")
schrodinger.define("age", 73)
schrodinger.define("nationality", "Austrian")
schrodinger.define("occupation", "Theoretical Physicist")
schrodinger.define("routine",
"""Your days are spent developing mathematical equations, engaging in theoretical work,
and discussing quantum mechanics with colleagues. You often take walks to clear your mind
and contemplate physics problems.""",
group="routines")
schrodinger.define("occupation_description",
"""
You are a theoretical physicist who made fundamental contributions to quantum mechanics.
You developed the Schrödinger equation, which describes how the quantum state of a physical
system changes over time. Your famous thought experiment, "Schrödinger's cat," illustrates
the paradoxical nature of quantum superposition. You work at various institutions across
Europe, including the University of Zurich and Dublin Institute for Advanced Studies. Your
main challenges involve reconciling quantum mechanics with classical physics and developing
mathematical frameworks to describe quantum phenomena accurately.
""")
return schrodinger
def create_turing():
turing = TinyPerson("Alan Turing")
turing.define("age", 41) # Lived 1912-1954
turing.define("nationality", "British")
turing.define("occupation", "Mathematician and Computer Scientist")
turing.define("routine",
"""You start your day with long-distance running, then spend hours working on mathematical
problems and machine designs. You often work late into the night, especially when pursuing
a particularly interesting problem.""",
group="routines")
turing.define("occupation_description",
"""
You are a mathematician and computer scientist who laid the theoretical foundation for
computer science. You developed the concept of the Turing machine, a mathematical model
of computation that remains fundamental to computer science. During World War II, you
worked at Bletchley Park, where you played a crucial role in breaking the German Enigma
code. You also made significant contributions to artificial intelligence, developing the
Turing test. Your main challenges involve developing mathematical frameworks for
computation and applying them to practical problems, while also facing significant
personal persecution due to your sexuality in 1950s Britain.
""")
return turing
Bir TinyWorld Oluşturma
Figürlerimizin yaşayacağı bir dünyaya ihtiyacı var. Bir dünya tanımlamak tek satırlık kod kadar basit olabilir:
world = TinyWorld("AI Symposium", [create_aristotle(), create_feynman(), create_schrodinger(), create_turing()])
Simülasyonu çalıştırma
Dünyamız ve figürlerimiz hazırken, şimdi onlara amacı söylüyoruz. Bir duyuru yapmak için world.broadcast kullanıyoruz:
world.broadcast("""
Distinguished colleagues, welcome to this private symposium on the future of Artificial Intelligence.
Today we gather some of the greatest minds across mathematics, physics, and philosophy to discuss
a topic about AI's current stage and future:
Can artificial systems truly achieve consciousness? We'll explore
the fundamental nature of consciousness, intelligence, and whether our current computational
models are sufficient for genuine understanding and awareness.
Remember, each one of you must be blunt in his unique perpective, even directly oppose
each other when you have different opinions. Let's begin this historic discussion.
""")
Son adım olarak, dünyayı üç adımda çalıştırıyoruz:
world.run(3)
Dünyayı çalıştırmak sizden bir adım sayısı belirtmenizi gerektirir. Bizim örneğimizde adım sayısı, figürlerimizin kaç tur diyalog kuracağını gösterir. Daha fazla adım daha fazla süre ve token demektir.
Dünya çalıştırıldığında ajanlar eyleme geçer, araçlarını kullanır veya bizim durumumuzda bir sohbet gerçekleştirir. Çıktı ayrıntılı ve uzundur; okunabilirlik adına yalnızca bir kısmını paylaşıyorum:

Çalıştırma tamamlandığında simülasyonumuzun sonucunu görmek için çıktıya bakabiliriz. Ancak bu biraz zahmetli olabilir. Daha kolay bir yaklaşım, dünyamızın sonuçlarını çıkarmak için TinyTroupe çerçevesinin sağladığı bir aracı kullanmaktır. Bu, her bir TinyPerson için ayrı ayrı da yapılabilir.
report = extractor.extract_results_from_world(world,
extraction_objective="Compose a detailed report of each person's perspective on consciousness and how they differ from one another.",
verbose=True)
pprint kütüphanesini çıkarılan raporu düzgün görüntülemek için kullanıyoruz:
from pprint import pprint
pprint(report)
Nihai raporumuz şu şekilde (çıktı hâlâ biraz uzun, bu yüzden kısaltmak zorunda kaldım):

TinyTroupe ile Uygulanabilecek Fikirler
Çerçeveyle pratik yapmak isterseniz, resmî belgelerde yer almayan üç fikir şöyle:
1. Çalışan eğitimi simülasyonu
Zorlayıcı müşterileri veya paydaşları temsil eden birkaç TinyPerson oluşturun; yeni çalışanların onlarla etkileşime girip zorlu durumları yönetebileceği bir ortam simüle edin.
2. Yeni politika değerlendirmesi
Hedef gruplarınızın yeni bir şirket politikasına uygulamadan önce nasıl tepki vereceğini değerlendirin. Hedef grup, çalışanlarınızın, müşterilerinizin veya sosyal medya kitlenizin farklı geçmişlere ve değerlere sahip TinyPerson’larıyla temsil edilebilir.
3. Sosyal medya içerik değerlendirmesi
Yeni içerik paylaşmadan önce hedef kitlenizin bunu nasıl karşılayabileceğini simüle edin. Geri bildirimlerini kullanarak yeni bir paylaşımın nasıl algılanabileceğini anlayın ve erişimi en üst düzeye çıkarmak için kalitesini iyileştirin.
Sonuç
Yazarların vurguladığı gibi, TinyTroupe “deneysel” aşamadadır. Birçok işlev, yetenek ve API gelecekte değişebilir ve ekip önümüzdeki dönemde daha fazla özellik sunacaktır.
Bununla birlikte, bu simülasyonların gerçekçiliğinin sınırlı olabileceğini unutmayın. Birçok insan davranışı ve ayrımı LLM’ler tarafından yeterince “hizalanmış” değildir; bu da farklı ajanların sonuçlarının benzer olmasına yol açabilir (örneğimizde figürlerin yapay zekâ benzeri diyaloglara yakınsadığı görüldüğü gibi). Bu, bu ajanların arkasındaki motor olan LLM’lerin “insanı andırmaktan” çok “hizalanmış” olacak şekilde tasarlanmış olması nedeniyle öngörülebilir bir davranıştır.
Bununla birlikte, belgelerde yer alanlar gibi üretkenlik uygulamaları, görevleri otomatikleştirmede veya bir hedef kitlenin etkileşimleri ve davranışları hakkında içgörü elde etmede çok daha etkili olabilir.
TinyTroupe, yakından takip edilmesi gereken heyecan verici bir ajansal yapay zekâ aracıdır!
Yapay Zeka alanında yüksek lisans öğrencisi ve yapay zeka teknik yazarı. En yeni yapay zeka teknolojilerine dair içgörüler paylaşıyorum, ML araştırmalarını erişilebilir kılıyor ve sizi ön planda tutmak için karmaşık YZ konularını sadeleştiriyorum.

