Zulelee's picture
Upload 62 files
57b8424
from permchain.connection_inmemory import InMemoryPubSubConnection
from permchain.pubsub import PubSub
from permchain.topic import Topic
class Researcher:
def __init__(self, search_actor, writer_actor):
self.search_actor_instance = search_actor
self.writer_actor_instance = writer_actor
def run(self, query):
# The research inbox
research_inbox = Topic("research")
search_actor = (
Topic.IN.subscribe()
| {
"query": lambda x: x,
"results": self.search_actor_instance.runnable
}
| research_inbox.publish()
)
write_actor = (
research_inbox.subscribe()
| self.writer_actor_instance.runnable
| Topic.OUT.publish()
)
researcher = PubSub(
search_actor,
write_actor,
connection=InMemoryPubSubConnection(),
)
res = researcher.invoke(query)
return res["answer"]