recent data
This commit is contained in:
@@ -1,10 +1,9 @@
|
||||
import os
|
||||
import requests
|
||||
from dotenv import load_dotenv
|
||||
from langchain_openai import ChatOpenAI
|
||||
from tavily import TavilyClient
|
||||
from langchain_core.prompts.prompt import PromptTemplate
|
||||
from langchain_core.output_parsers import StrOutputParser, JsonOutputParser
|
||||
from langchain_core.output_parsers import JsonOutputParser
|
||||
from loguru import logger
|
||||
import concurrent.futures
|
||||
import json
|
||||
@@ -20,6 +19,11 @@ llm = ChatOpenAI(model="gpt-4o")
|
||||
# Instantiating TavilyClient
|
||||
tavily_client = TavilyClient()
|
||||
|
||||
# Check for missing environment variables
|
||||
if not os.getenv("OPENAI_API_KEY") or not os.getenv("TAVILY_API_KEY") or not os.getenv("PERPLEXITY_AI_API"):
|
||||
logger.error("One or more API keys are missing from the environment variables.")
|
||||
raise EnvironmentError("Missing API keys.")
|
||||
|
||||
def get_influencer_data(social_media: str, influencer_name:str , socialmedia_name: str, socialmedia_followers:str) -> dict:
|
||||
logger.info(f"Formatting Influencer Data")
|
||||
initiator_prompt = PromptTemplate(
|
||||
@@ -46,7 +50,11 @@ def get_influencer_data(social_media: str, influencer_name:str , socialmedia_nam
|
||||
)
|
||||
|
||||
initiator_router = initiator_prompt | llm | JsonOutputParser()
|
||||
output = initiator_router.invoke({"social_media":social_media, "socialmedia_name":socialmedia_name, "socialmedia_followers":socialmedia_followers, "influencer_name":influencer_name})
|
||||
try:
|
||||
output = initiator_router.invoke({"social_media":social_media, "socialmedia_name":socialmedia_name, "socialmedia_followers":socialmedia_followers, "influencer_name":influencer_name})
|
||||
except Exception as e:
|
||||
logger.error(f"Error extracting influencer data: {e}")
|
||||
return {"influencer_name": influencer_name, "followers": None} # Return structured JSON
|
||||
return output
|
||||
|
||||
def socialmedia_details(social_media:str, influencer_name:str, product_category:str):
|
||||
@@ -94,7 +102,8 @@ def get_influencer_contact(influencer_name:str, contact:str, location:str) -> di
|
||||
output = initiator_router.invoke({"contact":contact, "location":location, "influencer_name":influencer_name})
|
||||
return output
|
||||
|
||||
def contact_details(influencer_name:str, product_category:str):
|
||||
def contact_details(influencer_name: str, product_category: str) -> dict:
|
||||
"""Fetch and format influencer contact details."""
|
||||
logger.info(f"contact details search")
|
||||
contact_question = f"What is the contact details or email of {influencer_name}, this person is a popular {product_category} influencer."
|
||||
print(contact_question)
|
||||
@@ -150,3 +159,8 @@ def get_all_influencer_data(influencer_names: list, category: str):
|
||||
logger.error(f"{influencer} generated an exception: {exc}")
|
||||
|
||||
return all_influencers_data
|
||||
|
||||
|
||||
# # data = get_all_influencer_data(influencer_names=['Kylie Swift'], category="Entertainment & Pop Culture")
|
||||
# data = socialmedia_details("Facebook", "Kylie Swift", "Entertainment")
|
||||
# print(data)
|
||||
Reference in New Issue
Block a user