Skip to content

Commit

Permalink
fixes and typos
Browse files Browse the repository at this point in the history
  • Loading branch information
Ashish-Abraham committed Nov 10, 2024
1 parent 24a2670 commit cdaa162
Showing 1 changed file with 38 additions and 9 deletions.
47 changes: 38 additions & 9 deletions examples/conversation_extraction/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@
import re
import datetime
from indexify import RemoteGraph
from dotenv import load_dotenv
import os
from llama_cpp import Llama

Expand All @@ -24,7 +23,6 @@ class BaseConversationSchema(BaseModel):
duration: int
participants: List[str]
meeting_type: str
summary: str

class Config:
arbitrary_types_allowed = True
Expand Down Expand Up @@ -77,7 +75,6 @@ class RDBrainstormSchema(BaseConversationSchema):
.run("apt-get purge -y build-essential && apt-get autoremove -y && rm -rf /var/lib/apt/lists/*")
)


def get_chat_completion(prompt: str) -> str:
model = Llama.from_pretrained(
repo_id="NousResearch/Hermes-3-Llama-3.1-8B-GGUF",
Expand Down Expand Up @@ -306,7 +303,7 @@ def run_workflow(mode: str, server_url: str = 'http://localhost:8900', bucket_na
else:
raise ValueError("Invalid mode. Choose 'in-process-run' or 'remote-run'.")

file_path = "data/audiofile" #replace with your file path
file_path = "data/audiofile" #replace with your file path
with open(file_path, 'rb') as audio_file:
audio_data = audio_file.read()
file = File(path=file_path, data=audio_data)
Expand All @@ -323,16 +320,48 @@ def run_workflow(mode: str, server_url: str = 'http://localhost:8900', bucket_na
logging.info(f"Transcription Classification: {classification.classification}")

if classification.classification == "strategy-meeting":
summary = graph.output(invocation_id=invocation_id, fn_name=summarize_strategy_meeting.name)[0]
result = graph.output(invocation_id=invocation_id, fn_name=summarize_strategy_meeting.name)[0]
logging.info("\nExtracted information:")
print(f"Meeting ID: {result.meeting_id}")
print(f"Date: {result.date.strftime('%Y-%m-%d %H:%M:%S')}")
print(f"Duration: {result.duration} seconds")
print(f"Participants: {repr(result.participants) if result.participants else 'None'}")
print(f"Meeting Type: {result.meeting_type}")
print(f"Key Decisions: {repr(result.key_decisions)}")
print(f"Risk Assessments: {repr(result.risk_assessments)}")
print(f"Strategic Initiatives: {repr(result.strategic_initiatives)}")
print(f"Action Items: {repr(result.action_items)}")

elif classification.classification in ["sales-call", "marketing-call", "product-call"]:
summary = graph.output(invocation_id=invocation_id, fn_name=summarize_sales_call.name)[0]
result = graph.output(invocation_id=invocation_id, fn_name=summarize_sales_call.name)[0]
logging.info("\nExtracted information:")
print(f"Meeting ID: {result.meeting_id}")
print(f"Date: {result.date.strftime('%Y-%m-%d %H:%M:%S')}")
print(f"Duration: {result.duration} seconds")
print(f"Participants: {repr(result.participants) if result.participants else 'None'}")
print(f"Meeting Type: {result.meeting_type}")
print(f"Customer Pain Points: {repr(result.customer_pain_points)}")
print(f"Proposed Solutions: {repr(result.proposed_solutions)}")
print(f"Objections: {repr(result.objections)}")
print(f"Next Steps: {repr(result.next_steps)}")

elif classification.classification == "rd-brainstorm":
summary = graph.output(invocation_id=invocation_id, fn_name=summarize_rd_brainstorm.name)[0]
result = graph.output(invocation_id=invocation_id, fn_name=summarize_rd_brainstorm.name)[0]
logging.info("\nExtracted information:")
print(f"Meeting ID: {result.meeting_id}")
print(f"Date: {result.date.strftime('%Y-%m-%d %H:%M:%S')}")
print(f"Duration: {result.duration} seconds")
print(f"Participants: {repr(result.participants) if result.participants else 'None'}")
print(f"Meeting Type: {result.meeting_type}")
print(f"Innovative Ideas: {repr(result.innovative_ideas)}")
print(f"Technical Challenges: {repr(result.technical_challenges)}")
print(f"Resource Requirements: {repr(result.resource_requirements)}")
print(f"Potential Impacts: {repr(result.potential_impacts)}")

else:
logging.warning(f"No suitable summarization found for the classification: {classification.classification}")
return

logging.info(f"\nExtracted information:\n{summary.summary}")

except Exception as e:
logging.error(f"Error in workflow execution: {str(e)}")
logging.error(f"Graph output for classify_meeting_intent: {graph.output(invocation_id=invocation_id, fn_name=classify_meeting_intent.name)}")
Expand Down

0 comments on commit cdaa162

Please sign in to comment.