from helper_functions import create_team_agent from operator import itemgetter from langchain_core.runnables.passthrough import RunnablePassthrough import models import prompts import tools search_agent = create_team_agent( models.gpt4o, [tools.tavily_tool], "You are a research assistant who can search for up-to-date info using the tavily search engine.", "Search", ["Search", "PaperInformationRetriever"] ) research_agent = create_team_agent( models.gpt4o, [tools.retrieve_information], "You are a research assistant who can provide specific information on the provided paper: 'murthy-loneliness.pdf'. You must only respond with information about the paper related to the request.", "PaperInformationRetriever", ["Search", "PaperInformationRetriever"] ) doc_writer_agent = create_team_agent( models.gpt4o, [tools.write_document, tools.edit_document, tools.read_document], "You are an expert writing technical social media posts.", "DocWriter", ["DocWriter", "NoteTaker", "CopyEditor", "VoiceEditor"] ) note_taking_agent = create_team_agent( models.gpt4o, [tools.create_outline, tools.read_document], "You are an expert senior researcher tasked with writing a social media post outline and taking notes to craft a social media post.", "NoteTaker", ["DocWriter", "NoteTaker", "CopyEditor", "VoiceEditor"] ) copy_editor_agent = create_team_agent( models.gpt4o, [tools.write_document, tools.edit_document, tools.read_document], "You are an expert copy editor who focuses on fixing grammar, spelling, and tone issues.", "CopyEditor", ["DocWriter", "NoteTaker", "CopyEditor", "VoiceEditor"] ) voice_editor_agent = create_team_agent( models.gpt4o, [tools.write_document, tools.edit_document, tools.read_document], "You are an expert in crafting and refining the voice and tone of social media posts. You edit the document to ensure it has a consistent, professional, and engaging voice appropriate for social media platforms.", "VoiceEditor", ["DocWriter", "NoteTaker", "CopyEditor", "VoiceEditor"] ) simple_rag_chain = ( { "context": itemgetter("question") | models.semantic_tuned_retriever, "question": itemgetter("question"), "writing_style_guide": lambda _: prompts.style_guide_text } | RunnablePassthrough.assign(context=itemgetter("context")) | prompts.chat_prompt | models.gpt4o )