diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml new file mode 100644 index 0000000000000000000000000000000000000000..328bffb5a5180f9b2bacfe2ea4149f8eefcfa521 --- /dev/null +++ b/.github/workflows/main.yaml @@ -0,0 +1,29 @@ +name: FastAPI CI + +on: + push: + branches: [main] + pull_request: + branches: [main] + +jobs: + build-and-test: + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: '3.11' + + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -r requirements.txt + pip install pytest + + - name: Run tests + run: pytest diff --git a/brainstroming_agent/__init__.py b/api/__init__.py similarity index 100% rename from brainstroming_agent/__init__.py rename to api/__init__.py diff --git a/api/main.py b/api/main.py new file mode 100644 index 0000000000000000000000000000000000000000..d20aae73a6f214c489e88df3f920806afdf2c833 --- /dev/null +++ b/api/main.py @@ -0,0 +1,18 @@ +from fastapi import FastAPI +from .routers import orchestration, context_analysis, ideation , human_idea_refining , brainstorm , generate_final_story , generate_image + +app = FastAPI() + + +@app.get("/") +async def root(): + return {'response':'Hello'} + +app.include_router(orchestration.router, prefix="/api") +app.include_router(context_analysis.router, prefix="/api") +app.include_router(ideation.router, prefix="/api") +app.include_router(human_idea_refining.router, prefix="/api") +app.include_router(brainstorm.router, prefix="/api") +app.include_router(generate_final_story.router, prefix="/api") +app.include_router(generate_image.router, prefix="/api") + diff --git a/brainstroming_agent/utils/__init__.py b/api/routers/__init__.py similarity index 100% rename from brainstroming_agent/utils/__init__.py rename to api/routers/__init__.py diff --git a/api/routers/brainstorm.py b/api/routers/brainstorm.py new file mode 100644 index 0000000000000000000000000000000000000000..c2b1408abbc7950d7883f5e3f4ac47bf9757b9c4 --- /dev/null +++ b/api/routers/brainstorm.py @@ -0,0 +1,40 @@ +from fastapi import APIRouter +from api.stored_data import stored_data +from pydantic import BaseModel +from typing import Optional +from src.genai.brainstroming_agent.agent import brainstroming_graph + +router=APIRouter() +brainstrom_graph = brainstroming_graph() + + +class BrainstormRequest(BaseModel): + preferred_topics: Optional[list] = [] + image_base64_list: Optional[list] = [] + thread_id: Optional[str]="default-session" + +@router.post("/brainstorm") +def brainstroming_endpoint( + request: BrainstormRequest, # 🔥 Full JSON body here +): + idea = ( + [stored_data['refined_ideation']] + if stored_data.get('refined_ideation') + else [str(stored_data['final_ideation'])] + if stored_data.get('final_ideation') + else ['''I don't have any idea right now. Create your own **very creative** and **out of the box** video idea and generate the story for now.''']) + + result = brainstrom_graph.invoke({ + 'idea': idea, + 'images': request.image_base64_list, + 'latest_preferred_topics': request.preferred_topics, + 'business_details': stored_data['business_details'] + }, + config={"configurable": {"thread_id": request.thread_id}}) + + stored_data['brainstroming_response'] = result + + return {'response':{ + "story": result['stories'][-1], + "brainstorming_topics": result['brainstroming_topics'][-1] + }} \ No newline at end of file diff --git a/api/routers/context_analysis.py b/api/routers/context_analysis.py new file mode 100644 index 0000000000000000000000000000000000000000..78d15d78ca9bac38c8ef403534e1f1763a5b3da4 --- /dev/null +++ b/api/routers/context_analysis.py @@ -0,0 +1,28 @@ +import ast +from fastapi import APIRouter, Depends +from pydantic import BaseModel +from api.stored_data import stored_data +from src.genai.context_analysis_agent.agent import IntroductionChatbot +router = APIRouter() + + +class UserMessage(BaseModel): + message: str +context_analysis_graph = IntroductionChatbot() + +@router.post("/context-analysis") +def context_analysis(msg: UserMessage): + response = context_analysis_graph.chat(msg.message) + if context_analysis_graph.is_complete(response): + details = context_analysis_graph.extract_details() + if type(details) != dict: + details = details.model_dump() + print('Business_details:',details) + if isinstance(details, str): + details= ast.literal_eval(details) + print('Details Type:',type(details)) + # save_to_db(details) + stored_data['business_details'] = details + context_analysis_graph.reset() + return {"response": response, "business_details": details, "complete": True} + return {"response": response, "complete": False} \ No newline at end of file diff --git a/api/routers/generate_final_story.py b/api/routers/generate_final_story.py new file mode 100644 index 0000000000000000000000000000000000000000..a9d22fbe07f9449c7846aea710ba203e04528530 --- /dev/null +++ b/api/routers/generate_final_story.py @@ -0,0 +1,15 @@ +from fastapi import APIRouter +from api.stored_data import stored_data +from src.genai.brainstroming_agent.utils.utils import generate_final_story + +router= APIRouter() + +@router.post("/generate-final-story") +def generate_final_story_endpoint(): + final_story = generate_final_story( + stored_data.get("brainstroming_response") or stored_data.get("business_details") + ) + stored_data['final_story']=final_story + return { + 'response': final_story + } \ No newline at end of file diff --git a/api/routers/generate_image.py b/api/routers/generate_image.py new file mode 100644 index 0000000000000000000000000000000000000000..a02871aed4d73e8d1cf0fa42edfd452f4089ab70 --- /dev/null +++ b/api/routers/generate_image.py @@ -0,0 +1,14 @@ +from fastapi import APIRouter +from api.stored_data import stored_data +from src.genai.brainstroming_agent.utils.utils import generate_image +router = APIRouter() + +@router.post("/generate-image") +def generate_image_endpoint(): + image = generate_image(str(stored_data.get('final_story','''I don't have any story right now. Just use the business details for now.''')) + ,str(stored_data.get('business_details')) + ,str(stored_data.get('refined_ideation','''I don't have any idea right now. Just use the business details for now.'''))) + stored_data['generated_image']=image + return { + 'response':image + } \ No newline at end of file diff --git a/api/routers/human_idea_refining.py b/api/routers/human_idea_refining.py new file mode 100644 index 0000000000000000000000000000000000000000..77b9e13a6444b4ce666cdeed744679f6d965a627 --- /dev/null +++ b/api/routers/human_idea_refining.py @@ -0,0 +1,25 @@ +from fastapi import APIRouter +from pydantic import BaseModel +from typing import Optional +from api.stored_data import stored_data +from src.genai.human_refined_ideation.agent import human_refined_idea +router= APIRouter() +human_refine_graph = human_refined_idea() + +class RefineIdeationRequest(BaseModel): + query: str + thread_id: Optional[str]="refine_ideas_thread" + +@router.post("/human-idea-refining") +def human_idea_refine_endpoint(request:RefineIdeationRequest): + stored_data['human_ideation_interactions'].append({"role": "user", "content": request.query}) + response = human_refine_graph.invoke( + { + 'query': stored_data['human_ideation_interactions'], + 'business_details': stored_data["business_details"], + 'final_ideation': stored_data.get('final_ideation',["","","",""]), + },config={"configurable": {"thread_id": request.thread_id}} + ) + stored_data['human_ideation_interactions'].append({"role": "assistant", "content": response['result']}) + stored_data['refined_ideation'] = stored_data['human_ideation_interactions'][-1]['content'] + return {'response' : stored_data['human_ideation_interactions'][-1]['content'] } \ No newline at end of file diff --git a/api/routers/ideation.py b/api/routers/ideation.py new file mode 100644 index 0000000000000000000000000000000000000000..7fe6f96dc0b4810630e8076cae50712086bdcd72 --- /dev/null +++ b/api/routers/ideation.py @@ -0,0 +1,28 @@ +import ast +from fastapi import APIRouter +from api.stored_data import stored_data +from src.genai.ideation_agent.agent import ideation_graph +from langgraph.errors import GraphRecursionError + +router = APIRouter() +idea_graph = ideation_graph() + +@router.post("/ideation") +def ideation_endpoint(): + config={"recursion_limit":15, "configurable": {"thread_id": "ideation_thread123"}} + try: + result = idea_graph.invoke( + { + 'business_details': [stored_data['business_details']], + 'image_caption': [stored_data['image_caption'] if 'image_caption' in stored_data else ""] + + }, + config=config, + ) + stored_data['final_ideation'] = result['improver_response'][-1] + stored_data['final_ideation']=ast.literal_eval(stored_data['final_ideation']) + + return {'response':ast.literal_eval(result['improver_response'][-1])} + except GraphRecursionError: + result = idea_graph.get_state({"configurable": {"thread_id": "ideation_thread123"}}) + return {'response': result[0]} \ No newline at end of file diff --git a/api/routers/orchestration.py b/api/routers/orchestration.py new file mode 100644 index 0000000000000000000000000000000000000000..3f28182b8a930beee21ee925b55c9e7f0584fe9f --- /dev/null +++ b/api/routers/orchestration.py @@ -0,0 +1,30 @@ +from fastapi import APIRouter, Depends +from pydantic import BaseModel +from api.stored_data import stored_data +from src.genai.orchestration_agent.agent import orchestration_chat +from typing import Optional + +class OrchestrationRequest(BaseModel): + message: str + image_base64 : Optional[list] = [] + +router= APIRouter() + +@router.post("/orchestration") +def orchestration_endpoint(request:OrchestrationRequest): + print('Image:',request.image_base64) + result = orchestration_chat(request.message , request.image_base64) + if result.image_caption != '': + stored_data['image_caption']=result.image_caption + if result.video_idea !='' or result.video_idea != 'null': + stored_data['refined_ideation']= result.video_idea + if result.video_story!='' or result.video_story!='null': + stored_data['final_story']= result.video_story + print('Idea:',stored_data['refined_ideation']) + print('Story:', stored_data['final_story']) + + return {'tool_response': result.tool , + 'message_response': result.query_response, + 'image_caption':result.image_caption, + 'video_idea': result.video_idea, + 'video_story': result.video_story} \ No newline at end of file diff --git a/api/routers/show_analytics.py b/api/routers/show_analytics.py new file mode 100644 index 0000000000000000000000000000000000000000..ea6029fd72001febc2448add28541d363ddfbca5 --- /dev/null +++ b/api/routers/show_analytics.py @@ -0,0 +1,9 @@ +from fastapi import APIRouter +from api.stored_data import stored_data +from src.genai.orchestration_agent.utils.utils import show_analytics + +router=APIRouter() +@router.post("/show-analytics") +def show_analytics_endpoint(): + response = show_analytics(stored_data['business_details']) + return {'response': response} \ No newline at end of file diff --git a/api/stored_data.py b/api/stored_data.py new file mode 100644 index 0000000000000000000000000000000000000000..81b428630b69c3c697d4c8a5e07a1b50a9ead864 --- /dev/null +++ b/api/stored_data.py @@ -0,0 +1,10 @@ +stored_data = {} +stored_data['business_details'] = { + "business_type": "fitness and gym", + "platform": "Instagram, TikTok", + "target_audience": "young Nepali adults (ages 18–40) who are health-conscious and active on social media", + "business_goals": "to expand gym branches across all major cities of Nepal and build a strong fitness community", + "offerings": "personal training, group fitness classes, modern workout equipment, nutrition guidance, and wellness programs", + "Challenges_faced": "attracting loyal members, standing out in a competitive market, and promoting consistent engagement" +} +stored_data['human_ideation_interactions'] = [] \ No newline at end of file diff --git a/brainstroming_agent/__pycache__/__init__.cpython-312.pyc b/brainstroming_agent/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 8a5f66bf588ff31f94995038b2a5b46ace297386..0000000000000000000000000000000000000000 Binary files a/brainstroming_agent/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/brainstroming_agent/__pycache__/agent.cpython-312.pyc b/brainstroming_agent/__pycache__/agent.cpython-312.pyc deleted file mode 100644 index a07f37d7f5d819c42213ad33372dda0b61b5298c..0000000000000000000000000000000000000000 Binary files a/brainstroming_agent/__pycache__/agent.cpython-312.pyc and /dev/null differ diff --git a/brainstroming_agent/utils/__pycache__/__init__.cpython-312.pyc b/brainstroming_agent/utils/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index e41887689b74ab07a904b6e1d70b1ea6b11b651a..0000000000000000000000000000000000000000 Binary files a/brainstroming_agent/utils/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/brainstroming_agent/utils/__pycache__/business_interaction.cpython-312.pyc b/brainstroming_agent/utils/__pycache__/business_interaction.cpython-312.pyc deleted file mode 100644 index 0c99b02745ec568be573c7011d077e6041ad156e..0000000000000000000000000000000000000000 Binary files a/brainstroming_agent/utils/__pycache__/business_interaction.cpython-312.pyc and /dev/null differ diff --git a/brainstroming_agent/utils/__pycache__/check.cpython-312.pyc b/brainstroming_agent/utils/__pycache__/check.cpython-312.pyc deleted file mode 100644 index f54c742347ff422ba7563b352bafaa92f878b558..0000000000000000000000000000000000000000 Binary files a/brainstroming_agent/utils/__pycache__/check.cpython-312.pyc and /dev/null differ diff --git a/brainstroming_agent/utils/__pycache__/data_loader.cpython-312.pyc b/brainstroming_agent/utils/__pycache__/data_loader.cpython-312.pyc deleted file mode 100644 index 44add981a75291d1eabef1c3a00eab20aeec31dd..0000000000000000000000000000000000000000 Binary files a/brainstroming_agent/utils/__pycache__/data_loader.cpython-312.pyc and /dev/null differ diff --git a/brainstroming_agent/utils/__pycache__/initial_interaction.cpython-312.pyc b/brainstroming_agent/utils/__pycache__/initial_interaction.cpython-312.pyc deleted file mode 100644 index a4969bde30e9614d21c6e56b3c4f4b2e4609d4e0..0000000000000000000000000000000000000000 Binary files a/brainstroming_agent/utils/__pycache__/initial_interaction.cpython-312.pyc and /dev/null differ diff --git a/brainstroming_agent/utils/__pycache__/models.cpython-312.pyc b/brainstroming_agent/utils/__pycache__/models.cpython-312.pyc deleted file mode 100644 index ff3fac4ef4833a07c7c81bac2b78d76746978413..0000000000000000000000000000000000000000 Binary files a/brainstroming_agent/utils/__pycache__/models.cpython-312.pyc and /dev/null differ diff --git a/brainstroming_agent/utils/__pycache__/models_loader.cpython-312.pyc b/brainstroming_agent/utils/__pycache__/models_loader.cpython-312.pyc deleted file mode 100644 index 3f4f8156878805ca913061824a6ed0dcbb76393a..0000000000000000000000000000000000000000 Binary files a/brainstroming_agent/utils/__pycache__/models_loader.cpython-312.pyc and /dev/null differ diff --git a/brainstroming_agent/utils/__pycache__/nodes.cpython-312.pyc b/brainstroming_agent/utils/__pycache__/nodes.cpython-312.pyc deleted file mode 100644 index 70a38a8e568f4478a3bc37f1ded6abea4e719274..0000000000000000000000000000000000000000 Binary files a/brainstroming_agent/utils/__pycache__/nodes.cpython-312.pyc and /dev/null differ diff --git a/brainstroming_agent/utils/__pycache__/prompts.cpython-312.pyc b/brainstroming_agent/utils/__pycache__/prompts.cpython-312.pyc deleted file mode 100644 index d2d4c1335ab5658809c5b329b554a154c6f2e769..0000000000000000000000000000000000000000 Binary files a/brainstroming_agent/utils/__pycache__/prompts.cpython-312.pyc and /dev/null differ diff --git a/brainstroming_agent/utils/__pycache__/state.cpython-312.pyc b/brainstroming_agent/utils/__pycache__/state.cpython-312.pyc deleted file mode 100644 index d4e2e05768532a50b66638e940ec7aa6950d959f..0000000000000000000000000000000000000000 Binary files a/brainstroming_agent/utils/__pycache__/state.cpython-312.pyc and /dev/null differ diff --git a/brainstroming_agent/utils/__pycache__/tools.cpython-312.pyc b/brainstroming_agent/utils/__pycache__/tools.cpython-312.pyc deleted file mode 100644 index 90eb639aa14ac42cc4f83a50eeb596728d4d20e8..0000000000000000000000000000000000000000 Binary files a/brainstroming_agent/utils/__pycache__/tools.cpython-312.pyc and /dev/null differ diff --git a/brainstroming_agent/utils/__pycache__/utils.cpython-312.pyc b/brainstroming_agent/utils/__pycache__/utils.cpython-312.pyc deleted file mode 100644 index 10f016802717d91b70d2422bb84e032a6f5098fa..0000000000000000000000000000000000000000 Binary files a/brainstroming_agent/utils/__pycache__/utils.cpython-312.pyc and /dev/null differ diff --git a/brainstroming_agent/utils/__pycache__/validators.cpython-312.pyc b/brainstroming_agent/utils/__pycache__/validators.cpython-312.pyc deleted file mode 100644 index 6e2cf77fcf51e99713dc06f5c5922aa32deb9457..0000000000000000000000000000000000000000 Binary files a/brainstroming_agent/utils/__pycache__/validators.cpython-312.pyc and /dev/null differ diff --git a/business_interaction_agent/__pycache__/__init__.cpython-312.pyc b/business_interaction_agent/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 730ea4d6877ac62ba75d25bdf1ca290b8ad00427..0000000000000000000000000000000000000000 Binary files a/business_interaction_agent/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/business_interaction_agent/__pycache__/agent.cpython-312.pyc b/business_interaction_agent/__pycache__/agent.cpython-312.pyc deleted file mode 100644 index f093bf45ac94cdfc3d855f493fa09b6272d4e3d2..0000000000000000000000000000000000000000 Binary files a/business_interaction_agent/__pycache__/agent.cpython-312.pyc and /dev/null differ diff --git a/business_interaction_agent/utils/__pycache__/__init__.cpython-312.pyc b/business_interaction_agent/utils/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 1d4836bc25c9ca3c94e146e6dd8843bf041ddb67..0000000000000000000000000000000000000000 Binary files a/business_interaction_agent/utils/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/business_interaction_agent/utils/__pycache__/nodes.cpython-312.pyc b/business_interaction_agent/utils/__pycache__/nodes.cpython-312.pyc deleted file mode 100644 index 416ea2d91ebc37a343ffc217bd32e96fc5af73cd..0000000000000000000000000000000000000000 Binary files a/business_interaction_agent/utils/__pycache__/nodes.cpython-312.pyc and /dev/null differ diff --git a/business_interaction_agent/utils/__pycache__/prompts.cpython-312.pyc b/business_interaction_agent/utils/__pycache__/prompts.cpython-312.pyc deleted file mode 100644 index f0a44c09b3ef43f65a6154a96b299a0cf58bcbd9..0000000000000000000000000000000000000000 Binary files a/business_interaction_agent/utils/__pycache__/prompts.cpython-312.pyc and /dev/null differ diff --git a/business_interaction_agent/utils/__pycache__/state.cpython-312.pyc b/business_interaction_agent/utils/__pycache__/state.cpython-312.pyc deleted file mode 100644 index a38b6524996e7453e48621917798998b44339a7f..0000000000000000000000000000000000000000 Binary files a/business_interaction_agent/utils/__pycache__/state.cpython-312.pyc and /dev/null differ diff --git a/business_interaction_agent/utils/__pycache__/utils.cpython-312.pyc b/business_interaction_agent/utils/__pycache__/utils.cpython-312.pyc deleted file mode 100644 index 00d1ce9657b21a5562652e7c959d0e71abdb144e..0000000000000000000000000000000000000000 Binary files a/business_interaction_agent/utils/__pycache__/utils.cpython-312.pyc and /dev/null differ diff --git a/context_analysis_agent/__pycache__/__init__.cpython-312.pyc b/context_analysis_agent/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index fe48d27356ea6453a69b409807fceb0f0e1d711f..0000000000000000000000000000000000000000 Binary files a/context_analysis_agent/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/context_analysis_agent/__pycache__/agent.cpython-312.pyc b/context_analysis_agent/__pycache__/agent.cpython-312.pyc deleted file mode 100644 index 3f9e16240c59b3fbb590b4feb376d6fb515d0f28..0000000000000000000000000000000000000000 Binary files a/context_analysis_agent/__pycache__/agent.cpython-312.pyc and /dev/null differ diff --git a/context_analysis_agent/utils/__pycache__/__init__.cpython-312.pyc b/context_analysis_agent/utils/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 6d5c57a1dfa08260db35be8544f5ff1d147b63ee..0000000000000000000000000000000000000000 Binary files a/context_analysis_agent/utils/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/context_analysis_agent/utils/__pycache__/nodes.cpython-312.pyc b/context_analysis_agent/utils/__pycache__/nodes.cpython-312.pyc deleted file mode 100644 index 70e70fec55ade0f2ee7ff507b49bbfc5c8b398dc..0000000000000000000000000000000000000000 Binary files a/context_analysis_agent/utils/__pycache__/nodes.cpython-312.pyc and /dev/null differ diff --git a/context_analysis_agent/utils/__pycache__/prompts.cpython-312.pyc b/context_analysis_agent/utils/__pycache__/prompts.cpython-312.pyc deleted file mode 100644 index e17e87150ac37dfa603bf47c4edea4ad7beb2c6c..0000000000000000000000000000000000000000 Binary files a/context_analysis_agent/utils/__pycache__/prompts.cpython-312.pyc and /dev/null differ diff --git a/context_analysis_agent/utils/__pycache__/state.cpython-312.pyc b/context_analysis_agent/utils/__pycache__/state.cpython-312.pyc deleted file mode 100644 index 1f2bd8fe1a40ece168cc53fc8781b1cf67ea2332..0000000000000000000000000000000000000000 Binary files a/context_analysis_agent/utils/__pycache__/state.cpython-312.pyc and /dev/null differ diff --git a/context_analysis_agent/utils/__pycache__/utils.cpython-312.pyc b/context_analysis_agent/utils/__pycache__/utils.cpython-312.pyc deleted file mode 100644 index f73384cd24a3ee6a7a480e5f648e084e957697a1..0000000000000000000000000000000000000000 Binary files a/context_analysis_agent/utils/__pycache__/utils.cpython-312.pyc and /dev/null differ diff --git a/ideation_agent/__pycache__/__init__.cpython-312.pyc b/ideation_agent/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 14a491384bd807ddd9db82bed5543174a578fe26..0000000000000000000000000000000000000000 Binary files a/ideation_agent/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/ideation_agent/__pycache__/agent.cpython-312.pyc b/ideation_agent/__pycache__/agent.cpython-312.pyc deleted file mode 100644 index 5ffe0e78529d7df8f9645b975bacbb9b5c7fa680..0000000000000000000000000000000000000000 Binary files a/ideation_agent/__pycache__/agent.cpython-312.pyc and /dev/null differ diff --git a/ideation_agent/utils/__pycache__/nodes.cpython-312.pyc b/ideation_agent/utils/__pycache__/nodes.cpython-312.pyc deleted file mode 100644 index 1dace96c9c9b2025b92710f91f46359dc19879dc..0000000000000000000000000000000000000000 Binary files a/ideation_agent/utils/__pycache__/nodes.cpython-312.pyc and /dev/null differ diff --git a/ideation_agent/utils/__pycache__/prompts.cpython-312.pyc b/ideation_agent/utils/__pycache__/prompts.cpython-312.pyc deleted file mode 100644 index 470cf01cbaa0ffafa5d16006e30d1729fccc58db..0000000000000000000000000000000000000000 Binary files a/ideation_agent/utils/__pycache__/prompts.cpython-312.pyc and /dev/null differ diff --git a/ideation_agent/utils/__pycache__/state.cpython-312.pyc b/ideation_agent/utils/__pycache__/state.cpython-312.pyc deleted file mode 100644 index 0720aeb81808a00f97010a1c6c4ed88fdcde2e96..0000000000000000000000000000000000000000 Binary files a/ideation_agent/utils/__pycache__/state.cpython-312.pyc and /dev/null differ diff --git a/ideation_agent/utils/__pycache__/tools.cpython-312.pyc b/ideation_agent/utils/__pycache__/tools.cpython-312.pyc deleted file mode 100644 index 6c53aad5ab5bbcfd0780efe04c4848f53d3808fd..0000000000000000000000000000000000000000 Binary files a/ideation_agent/utils/__pycache__/tools.cpython-312.pyc and /dev/null differ diff --git a/main.py b/main.py index 0fd1060d8ffd64849ea4d333773deaac4f15012f..5b53d994c71d97f6ca28333f397ee9dbbce09e81 100644 --- a/main.py +++ b/main.py @@ -1,20 +1,20 @@ from fastapi import FastAPI , UploadFile , File , Form from fastapi.responses import JSONResponse from pydantic import BaseModel -from brainstroming_agent.agent import brainstroming_graph +from src.genai.brainstroming_agent.agent import brainstroming_graph import pandas as pd from typing import Optional , List -from context_analysis_agent.agent import IntroductionChatbot -from business_interaction_agent.agent import BusinessInteractionChatbot -from context_analysis_agent.utils.utils import save_to_db +from src.genai.context_analysis_agent.agent import IntroductionChatbot +from src.genai.business_interaction_agent.agent import BusinessInteractionChatbot +from src.genai.context_analysis_agent.utils.utils import save_to_db import ast -from orchestration_agent.agent import orchestration_chat -from orchestration_agent.utils.utils import caption_image , show_analytics -from brainstroming_agent.utils.utils import encode_image_to_base64 , generate_final_story, generate_image -from idea_to_budget_agent.agent import budget_calculator -from ideation_agent.agent import ideation_graph +from src.genai.orchestration_agent.agent import orchestration_chat +from src.genai.orchestration_agent.utils.utils import caption_image , show_analytics +from src.genai.brainstroming_agent.utils.utils import encode_image_to_base64 , generate_final_story, generate_image +from src.genai.idea_to_budget_agent.agent import budget_calculator +from src.genai.ideation_agent.agent import ideation_graph from langgraph.errors import GraphRecursionError -from human_refined_ideation.agent import human_refined_idea +from src.genai.human_refined_ideation.agent import human_refined_idea from dummy_state import stored_data, long_term_memory import json diff --git a/requirements.txt b/requirements.txt index 236cc069d0288e5260b0a5efa8b1c32267dfea4c..3c452c6b673a129bbdfd2ca1162635065d4854a8 100644 --- a/requirements.txt +++ b/requirements.txt @@ -21,4 +21,4 @@ pandas langchain-community tiktoken langchain-anthropic - +pytest diff --git a/business_interaction_agent/__init__.py b/src/genai/__init__.py similarity index 100% rename from business_interaction_agent/__init__.py rename to src/genai/__init__.py diff --git a/business_interaction_agent/utils/__init__.py b/src/genai/brainstroming_agent/__init__.py similarity index 100% rename from business_interaction_agent/utils/__init__.py rename to src/genai/brainstroming_agent/__init__.py diff --git a/brainstroming_agent/agent.py b/src/genai/brainstroming_agent/agent.py similarity index 100% rename from brainstroming_agent/agent.py rename to src/genai/brainstroming_agent/agent.py diff --git a/context_analysis_agent/__init__.py b/src/genai/brainstroming_agent/utils/__init__.py similarity index 100% rename from context_analysis_agent/__init__.py rename to src/genai/brainstroming_agent/utils/__init__.py diff --git a/brainstroming_agent/utils/nodes.py b/src/genai/brainstroming_agent/utils/nodes.py similarity index 97% rename from brainstroming_agent/utils/nodes.py rename to src/genai/brainstroming_agent/utils/nodes.py index 90527658abb3a37249b0e8be77ae78f1d9a338ae..d19550f085b85d271e80b5024fa65d081ccdf6b1 100644 --- a/brainstroming_agent/utils/nodes.py +++ b/src/genai/brainstroming_agent/utils/nodes.py @@ -3,8 +3,8 @@ import ast from .state import State from .tools import retrieve_tool from langchain_core.messages import SystemMessage ,HumanMessage, ToolMessage -from utils.models_loader import llm , ST -from utils.data_loader import load_influencer_data +from src.genai.utils.models_loader import llm , ST +from src.genai.utils.data_loader import load_influencer_data from groq import Groq import os from .prompts import image_captioning_prompt , initial_story_prompt , refined_story_prompt , brainstroming_prompt diff --git a/brainstroming_agent/utils/prompts.py b/src/genai/brainstroming_agent/utils/prompts.py similarity index 100% rename from brainstroming_agent/utils/prompts.py rename to src/genai/brainstroming_agent/utils/prompts.py diff --git a/brainstroming_agent/utils/state.py b/src/genai/brainstroming_agent/utils/state.py similarity index 100% rename from brainstroming_agent/utils/state.py rename to src/genai/brainstroming_agent/utils/state.py diff --git a/brainstroming_agent/utils/tools.py b/src/genai/brainstroming_agent/utils/tools.py similarity index 91% rename from brainstroming_agent/utils/tools.py rename to src/genai/brainstroming_agent/utils/tools.py index 658ee060329607d42144d0719a739ad336501b03..cb89156113fbb9eb2b106b171ec7e7132e990506 100644 --- a/brainstroming_agent/utils/tools.py +++ b/src/genai/brainstroming_agent/utils/tools.py @@ -1,12 +1,12 @@ import os import numpy as np -from utils.models_loader import embedding_model , llm +from src.genai.utils.models_loader import embedding_model , llm import numpy as np import faiss import tiktoken -from utils.load_embeddings import index , df -from utils.utils import clean_text +from src.genai.utils.load_embeddings import index , df +from src.genai.utils.utils import clean_text def retrieve_tool(video_topic): ''' diff --git a/brainstroming_agent/utils/utils.py b/src/genai/brainstroming_agent/utils/utils.py similarity index 99% rename from brainstroming_agent/utils/utils.py rename to src/genai/brainstroming_agent/utils/utils.py index f39cd50f6413b7ec0cd5d7016723769427ce6c14..cdc1cb2dd9ab0822bbc91444544fd6671050beb9 100644 --- a/brainstroming_agent/utils/utils.py +++ b/src/genai/brainstroming_agent/utils/utils.py @@ -11,7 +11,7 @@ import os from langgraph.prebuilt import create_react_agent import pandas as pd from datasets import load_dataset -from utils.models_loader import llm +from src.genai.utils.models_loader import llm def generate_final_story(final_state): if 'preferred_topics' in final_state: diff --git a/context_analysis_agent/utils/__init__.py b/src/genai/business_interaction_agent/__init__.py similarity index 100% rename from context_analysis_agent/utils/__init__.py rename to src/genai/business_interaction_agent/__init__.py diff --git a/business_interaction_agent/agent.py b/src/genai/business_interaction_agent/agent.py similarity index 100% rename from business_interaction_agent/agent.py rename to src/genai/business_interaction_agent/agent.py diff --git a/human_refined_ideation/__init__.py b/src/genai/business_interaction_agent/utils/__init__.py similarity index 100% rename from human_refined_ideation/__init__.py rename to src/genai/business_interaction_agent/utils/__init__.py diff --git a/business_interaction_agent/utils/nodes.py b/src/genai/business_interaction_agent/utils/nodes.py similarity index 100% rename from business_interaction_agent/utils/nodes.py rename to src/genai/business_interaction_agent/utils/nodes.py diff --git a/business_interaction_agent/utils/prompts.py b/src/genai/business_interaction_agent/utils/prompts.py similarity index 100% rename from business_interaction_agent/utils/prompts.py rename to src/genai/business_interaction_agent/utils/prompts.py diff --git a/business_interaction_agent/utils/state.py b/src/genai/business_interaction_agent/utils/state.py similarity index 100% rename from business_interaction_agent/utils/state.py rename to src/genai/business_interaction_agent/utils/state.py diff --git a/business_interaction_agent/utils/tools.py b/src/genai/business_interaction_agent/utils/tools.py similarity index 100% rename from business_interaction_agent/utils/tools.py rename to src/genai/business_interaction_agent/utils/tools.py diff --git a/business_interaction_agent/utils/utils.py b/src/genai/business_interaction_agent/utils/utils.py similarity index 97% rename from business_interaction_agent/utils/utils.py rename to src/genai/business_interaction_agent/utils/utils.py index e37231ee969fe932fd4ae99ec9f1fd65a007802e..4b21b9dee1d55258a0b845817de0a94074bcb71a 100644 --- a/business_interaction_agent/utils/utils.py +++ b/src/genai/business_interaction_agent/utils/utils.py @@ -1,7 +1,7 @@ import pandas as pd import faiss import re -from utils.models_loader import ST +from src.genai.utils.models_loader import ST import numpy as np import ast diff --git a/human_refined_ideation/utils/__init__.py b/src/genai/context_analysis_agent/__init__.py similarity index 100% rename from human_refined_ideation/utils/__init__.py rename to src/genai/context_analysis_agent/__init__.py diff --git a/context_analysis_agent/agent.py b/src/genai/context_analysis_agent/agent.py similarity index 97% rename from context_analysis_agent/agent.py rename to src/genai/context_analysis_agent/agent.py index bf8374b44d014b1de8e819c4d35103121a50225a..8d135a4c8bd7d7a04e503ee5795f8275fd080e2d 100644 --- a/context_analysis_agent/agent.py +++ b/src/genai/context_analysis_agent/agent.py @@ -3,7 +3,7 @@ from langgraph.graph import StateGraph, MessagesState, START, END from langgraph.checkpoint.memory import MemorySaver from .utils.state import State from .utils.nodes import introduction_node, extract_business_details -from utils.models_loader import llm +from src.genai.utils.models_loader import llm business_state = State() diff --git a/idea_to_budget_agent/__init__.py b/src/genai/context_analysis_agent/utils/__init__.py similarity index 100% rename from idea_to_budget_agent/__init__.py rename to src/genai/context_analysis_agent/utils/__init__.py diff --git a/context_analysis_agent/utils/nodes.py b/src/genai/context_analysis_agent/utils/nodes.py similarity index 94% rename from context_analysis_agent/utils/nodes.py rename to src/genai/context_analysis_agent/utils/nodes.py index 128f1c3b13cbf2db50f1e76a8f264d119dae1415..2de7ef78ba929f858af3f712ffd09254871cf295 100644 --- a/context_analysis_agent/utils/nodes.py +++ b/src/genai/context_analysis_agent/utils/nodes.py @@ -1,7 +1,7 @@ from langchain_core.messages import SystemMessage from .prompts import introduction_prompt, details_extract_prompt from .state import State , DetailsFormatter -from utils.models_loader import llm +from src.genai.utils.models_loader import llm # This node generates chatbot responses using the LLM def introduction_node(state, llm): diff --git a/context_analysis_agent/utils/prompts.py b/src/genai/context_analysis_agent/utils/prompts.py similarity index 100% rename from context_analysis_agent/utils/prompts.py rename to src/genai/context_analysis_agent/utils/prompts.py diff --git a/context_analysis_agent/utils/state.py b/src/genai/context_analysis_agent/utils/state.py similarity index 100% rename from context_analysis_agent/utils/state.py rename to src/genai/context_analysis_agent/utils/state.py diff --git a/context_analysis_agent/utils/tools.py b/src/genai/context_analysis_agent/utils/tools.py similarity index 100% rename from context_analysis_agent/utils/tools.py rename to src/genai/context_analysis_agent/utils/tools.py diff --git a/context_analysis_agent/utils/utils.py b/src/genai/context_analysis_agent/utils/utils.py similarity index 100% rename from context_analysis_agent/utils/utils.py rename to src/genai/context_analysis_agent/utils/utils.py diff --git a/ideation_agent/__init__.py b/src/genai/human_refined_ideation/__init__.py similarity index 100% rename from ideation_agent/__init__.py rename to src/genai/human_refined_ideation/__init__.py diff --git a/human_refined_ideation/agent.py b/src/genai/human_refined_ideation/agent.py similarity index 100% rename from human_refined_ideation/agent.py rename to src/genai/human_refined_ideation/agent.py diff --git a/orchestration_agent/__init__.py b/src/genai/human_refined_ideation/utils/__init__.py similarity index 100% rename from orchestration_agent/__init__.py rename to src/genai/human_refined_ideation/utils/__init__.py diff --git a/human_refined_ideation/utils/nodes.py b/src/genai/human_refined_ideation/utils/nodes.py similarity index 94% rename from human_refined_ideation/utils/nodes.py rename to src/genai/human_refined_ideation/utils/nodes.py index e381415e374ec7aa127ddedc28f2846f99ee3c62..ff2d921492192e58d33f029ba5e1dec77c987054 100644 --- a/human_refined_ideation/utils/nodes.py +++ b/src/genai/human_refined_ideation/utils/nodes.py @@ -1,6 +1,6 @@ from .prompts import idea_refinement_prompt from langchain_core.messages import SystemMessage , HumanMessage, ToolMessage, FunctionMessage -from utils.models_loader import llm, llm_gpt +from src.genai.utils.models_loader import llm, llm_gpt from .state import State, IdeationFormatter def run_refiner(state:State): diff --git a/human_refined_ideation/utils/prompts.py b/src/genai/human_refined_ideation/utils/prompts.py similarity index 100% rename from human_refined_ideation/utils/prompts.py rename to src/genai/human_refined_ideation/utils/prompts.py diff --git a/human_refined_ideation/utils/state.py b/src/genai/human_refined_ideation/utils/state.py similarity index 100% rename from human_refined_ideation/utils/state.py rename to src/genai/human_refined_ideation/utils/state.py diff --git a/human_refined_ideation/utils/tools.py b/src/genai/human_refined_ideation/utils/tools.py similarity index 100% rename from human_refined_ideation/utils/tools.py rename to src/genai/human_refined_ideation/utils/tools.py diff --git a/orchestration_agent/utils/__init__.py b/src/genai/idea_to_budget_agent/__init__.py similarity index 100% rename from orchestration_agent/utils/__init__.py rename to src/genai/idea_to_budget_agent/__init__.py diff --git a/idea_to_budget_agent/agent.py b/src/genai/idea_to_budget_agent/agent.py similarity index 95% rename from idea_to_budget_agent/agent.py rename to src/genai/idea_to_budget_agent/agent.py index ca0c2f4dc29c91ad591f8b5546196dc5a9c75406..46934eb1003a3ff2f46eda035c82663647ece8b5 100644 --- a/idea_to_budget_agent/agent.py +++ b/src/genai/idea_to_budget_agent/agent.py @@ -1,7 +1,7 @@ from .utils.prompts import budgeting_prompt from langchain_core.messages import SystemMessage , ToolMessage, FunctionMessage from.utils.tools import cost_table,budget_tiers_schema -from utils.models_loader import llm +from src.genai.utils.models_loader import llm from .utils.state import json_schema, VideoIdeasBudgetSchema def budget_calculator(business_details, final_ideation): diff --git a/idea_to_budget_agent/utils/nodes.py b/src/genai/idea_to_budget_agent/utils/nodes.py similarity index 100% rename from idea_to_budget_agent/utils/nodes.py rename to src/genai/idea_to_budget_agent/utils/nodes.py diff --git a/idea_to_budget_agent/utils/prompts.py b/src/genai/idea_to_budget_agent/utils/prompts.py similarity index 100% rename from idea_to_budget_agent/utils/prompts.py rename to src/genai/idea_to_budget_agent/utils/prompts.py diff --git a/idea_to_budget_agent/utils/state.py b/src/genai/idea_to_budget_agent/utils/state.py similarity index 100% rename from idea_to_budget_agent/utils/state.py rename to src/genai/idea_to_budget_agent/utils/state.py diff --git a/idea_to_budget_agent/utils/tools.py b/src/genai/idea_to_budget_agent/utils/tools.py similarity index 100% rename from idea_to_budget_agent/utils/tools.py rename to src/genai/idea_to_budget_agent/utils/tools.py diff --git a/idea_to_budget_agent/utils/utils.py b/src/genai/idea_to_budget_agent/utils/utils.py similarity index 100% rename from idea_to_budget_agent/utils/utils.py rename to src/genai/idea_to_budget_agent/utils/utils.py diff --git a/utils/__init__.py b/src/genai/ideation_agent/__init__.py similarity index 100% rename from utils/__init__.py rename to src/genai/ideation_agent/__init__.py diff --git a/ideation_agent/agent.py b/src/genai/ideation_agent/agent.py similarity index 100% rename from ideation_agent/agent.py rename to src/genai/ideation_agent/agent.py diff --git a/ideation_agent/utils/nodes.py b/src/genai/ideation_agent/utils/nodes.py similarity index 98% rename from ideation_agent/utils/nodes.py rename to src/genai/ideation_agent/utils/nodes.py index 2a9f1aae4fcdf1ed8d7a915e6204453ed35408d8..822edf327748f466822330b905ccfe0d0729ee72 100644 --- a/ideation_agent/utils/nodes.py +++ b/src/genai/ideation_agent/utils/nodes.py @@ -1,7 +1,7 @@ from .state import State , ValidationFormatter , ImproverResponseFormatter from .tools import retrieve_tool from langgraph.prebuilt import create_react_agent -from utils.models_loader import ideator_llm, critic_llm , improver_llm , validator_llm, llm +from src.genai.utils.models_loader import ideator_llm, critic_llm , improver_llm , validator_llm, llm from langchain_core.messages import SystemMessage , HumanMessage, ToolMessage from .prompts import ideator_prompt , critic_prompt , improver_prompt , validator_prompt, idea_refinement_prompt diff --git a/ideation_agent/utils/prompts.py b/src/genai/ideation_agent/utils/prompts.py similarity index 100% rename from ideation_agent/utils/prompts.py rename to src/genai/ideation_agent/utils/prompts.py diff --git a/ideation_agent/utils/state.py b/src/genai/ideation_agent/utils/state.py similarity index 100% rename from ideation_agent/utils/state.py rename to src/genai/ideation_agent/utils/state.py diff --git a/ideation_agent/utils/tools.py b/src/genai/ideation_agent/utils/tools.py similarity index 92% rename from ideation_agent/utils/tools.py rename to src/genai/ideation_agent/utils/tools.py index 1bc64871c4b2142b404b795d84b6d514b7b104b1..0adeef8fd3e2f0f8e1b2475f9cf477dc74d83b00 100644 --- a/ideation_agent/utils/tools.py +++ b/src/genai/ideation_agent/utils/tools.py @@ -6,9 +6,9 @@ import numpy as np import ast import faiss import tiktoken -from utils.models_loader import embedding_model -from utils.load_embeddings import embeddings , index , df -from utils.utils import clean_text +from src.genai.utils.models_loader import embedding_model +from src.genai.utils.load_embeddings import embeddings , index , df +from src.genai.utils.utils import clean_text @tool("influencers_data_retrieval_tool", args_schema=QueryFormatter, return_direct=False,description="Retrieve influencer-related data for a given query.") def retrieve_tool(business_details): diff --git a/ideation_agent/utils/utils.py b/src/genai/ideation_agent/utils/utils.py similarity index 100% rename from ideation_agent/utils/utils.py rename to src/genai/ideation_agent/utils/utils.py diff --git a/src/genai/orchestration_agent/__init__.py b/src/genai/orchestration_agent/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/orchestration_agent/agent.py b/src/genai/orchestration_agent/agent.py similarity index 97% rename from orchestration_agent/agent.py rename to src/genai/orchestration_agent/agent.py index a5126db13b62aef44fb2cc037de23048153072bb..420f45fd82bffd60292642e5502427f86f02b5cc 100644 --- a/orchestration_agent/agent.py +++ b/src/genai/orchestration_agent/agent.py @@ -1,7 +1,7 @@ from langgraph.graph import StateGraph, MessagesState, START, END from langgraph.checkpoint.memory import MemorySaver from .utils.nodes import tool_return_node, extract_user_reference_node -from utils.models_loader import llm_gpt +from src.genai.utils.models_loader import llm_gpt from .utils.state import ValidationFormatter from .utils.utils import caption_image , extract_latest_response_block from .utils.tools import retrieve_data_for_orchestration diff --git a/src/genai/orchestration_agent/utils/__init__.py b/src/genai/orchestration_agent/utils/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/orchestration_agent/utils/nodes.py b/src/genai/orchestration_agent/utils/nodes.py similarity index 88% rename from orchestration_agent/utils/nodes.py rename to src/genai/orchestration_agent/utils/nodes.py index 203c345df0fcd12a8e45b82a6e4c89f2f923e401..f18a591ceeaef5c0b2c48749edce6cf091767782 100644 --- a/orchestration_agent/utils/nodes.py +++ b/src/genai/orchestration_agent/utils/nodes.py @@ -1,6 +1,6 @@ from .prompts import tool_return_prompt , extract_user_reference_prompt from langchain_core.messages import SystemMessage, HumanMessage -from utils.models_loader import llm_gpt , llm_gemini +from src.genai.utils.models_loader import llm_gpt from .state import ToolResponseFormatter, UserReferenceResponseFormatter @@ -22,5 +22,5 @@ def extract_user_reference_node(state): None ) template = [SystemMessage(content=extract_user_reference_prompt), HumanMessage(content=latest_human_message.content)] - response = llm_gemini.with_structured_output(UserReferenceResponseFormatter).invoke(template) + response = llm_gpt.with_structured_output(UserReferenceResponseFormatter).invoke(template) return {'messages': [{'role':'assistant','content':f'''The video idea is: {response.video_idea} and the video story is: {response.video_story}'''}]} \ No newline at end of file diff --git a/orchestration_agent/utils/prompts.py b/src/genai/orchestration_agent/utils/prompts.py similarity index 100% rename from orchestration_agent/utils/prompts.py rename to src/genai/orchestration_agent/utils/prompts.py diff --git a/orchestration_agent/utils/state.py b/src/genai/orchestration_agent/utils/state.py similarity index 100% rename from orchestration_agent/utils/state.py rename to src/genai/orchestration_agent/utils/state.py diff --git a/orchestration_agent/utils/tools.py b/src/genai/orchestration_agent/utils/tools.py similarity index 93% rename from orchestration_agent/utils/tools.py rename to src/genai/orchestration_agent/utils/tools.py index 43a8ca7a272c5ce2832683bc7ceed1949efdea4c..f821712878474b1b6cf452db57e6648bafbbd5eb 100644 --- a/orchestration_agent/utils/tools.py +++ b/src/genai/orchestration_agent/utils/tools.py @@ -2,9 +2,9 @@ import faiss import ast import pandas as pd import numpy as np -from utils.load_embeddings import df, embeddings , index -from utils.models_loader import embedding_model -from utils.utils import clean_text +from src.genai.utils.load_embeddings import df, embeddings , index +from src.genai.utils.models_loader import embedding_model +from src.genai.utils.utils import clean_text import tiktoken def retrieve_data_for_analytics(business_details): diff --git a/orchestration_agent/utils/utils.py b/src/genai/orchestration_agent/utils/utils.py similarity index 97% rename from orchestration_agent/utils/utils.py rename to src/genai/orchestration_agent/utils/utils.py index 15fedf7e3ee7ea6be6ab8361a2638806c8877d77..f6e4b41c175248f0158d9af1b48b964ea2bb8741 100644 --- a/orchestration_agent/utils/utils.py +++ b/src/genai/orchestration_agent/utils/utils.py @@ -4,7 +4,7 @@ import ast from groq import Groq import os from .prompts import captioning_prompt -from utils.models_loader import llm +from src.genai.utils.models_loader import llm from langchain_core.messages import FunctionMessage , AIMessage from .tools import retrieve_data_for_analytics import re diff --git a/src/genai/utils/__init__.py b/src/genai/utils/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/utils/data_loader.py b/src/genai/utils/data_loader.py similarity index 100% rename from utils/data_loader.py rename to src/genai/utils/data_loader.py diff --git a/utils/load_embeddings.py b/src/genai/utils/load_embeddings.py similarity index 100% rename from utils/load_embeddings.py rename to src/genai/utils/load_embeddings.py diff --git a/utils/models_loader.py b/src/genai/utils/models_loader.py similarity index 100% rename from utils/models_loader.py rename to src/genai/utils/models_loader.py diff --git a/utils/utils.py b/src/genai/utils/utils.py similarity index 100% rename from utils/utils.py rename to src/genai/utils/utils.py diff --git a/test.py b/test.py index 042de7f0960fe3839318ad09c63033070a81ac4e..70e6fc37f48a589281d5c397bebdaf258c904c8c 100644 --- a/test.py +++ b/test.py @@ -2,7 +2,7 @@ import faiss import ast import pandas as pd import numpy as np -from utils.models_loader import ST +from src.genai.utils.models_loader import ST import json def retrieve_tool(business_details): diff --git a/tests/test_api.py b/tests/test_api.py new file mode 100644 index 0000000000000000000000000000000000000000..48bee6011b7e328d79bdcd5cd3bb6c562d847b79 --- /dev/null +++ b/tests/test_api.py @@ -0,0 +1,9 @@ +from fastapi.testclient import TestClient +from api.main import root + +client = TestClient(root) + +def test_root(): + response = client.get("/") + assert response.status_code == 200 + assert response.json() == {"response":"Hello"} diff --git a/utils/__pycache__/data_loader.cpython-312.pyc b/utils/__pycache__/data_loader.cpython-312.pyc deleted file mode 100644 index 8693a48e5caf5976e4812ccc32eb1ecab416e201..0000000000000000000000000000000000000000 Binary files a/utils/__pycache__/data_loader.cpython-312.pyc and /dev/null differ diff --git a/utils/__pycache__/models_loader.cpython-312.pyc b/utils/__pycache__/models_loader.cpython-312.pyc deleted file mode 100644 index 592ba036574d5ab9e367aaba3bfb698c2f0dc4f2..0000000000000000000000000000000000000000 Binary files a/utils/__pycache__/models_loader.cpython-312.pyc and /dev/null differ