57 lines
2.1 KiB
Plaintext
57 lines
2.1 KiB
Plaintext
def __init__(self, api_key: str | None = None, test_mode: bool = False):
|
|
"""Initialize the LLM analyzer.
|
|
|
|
Args:
|
|
api_key: Anthropic API key. If None, will attempt to load from config.
|
|
test_mode: If True, print prompts instead of making API calls
|
|
"""
|
|
self.test_mode = test_mode
|
|
if config.anthropic_api_key and not test_mode:
|
|
self.client = Anthropic(api_key=api_key or config.anthropic_api_key)
|
|
self.model = "claude-3-5-sonnet-20241022"
|
|
else:
|
|
self.client = None
|
|
|
|
def analyze_patent_content(self, patent_content: str, company_name: str) -> str:
|
|
"""Analyze patent content to estimate company innovation and performance.
|
|
|
|
Args:
|
|
patent_content: Minimized patent text (abstract, claims, summary)
|
|
company_name: Name of the company for context
|
|
|
|
Returns:
|
|
Analysis text describing innovation quality and potential impact
|
|
"""
|
|
prompt = f"""You are a patent analyst evaluating {company_name}'s innovation strategy.
|
|
|
|
Analyze the following patent content and provide insights on:
|
|
1. Innovation quality and novelty
|
|
2. Technical complexity and defensibility
|
|
3. Market potential and commercial viability
|
|
4. Strategic positioning relative to industry trends
|
|
|
|
Patent Content:
|
|
{patent_content}
|
|
|
|
Provide a concise analysis (2-3 paragraphs) focusing on what this patent reveals about the company's technical direction and competitive advantage."""
|
|
|
|
if self.test_mode:
|
|
print("=" * 80)
|
|
print("TEST MODE - Prompt that would be sent to LLM:")
|
|
print("=" * 80)
|
|
print(prompt)
|
|
print("=" * 80)
|
|
return "[TEST MODE - No API call made]"
|
|
|
|
if self.client:
|
|
message = self.client.messages.create(
|
|
model=self.model,
|
|
max_tokens=1024,
|
|
messages=[{"role": "user", "content": prompt}],
|
|
)
|
|
return message.content[0].text
|
|
else:
|
|
with open(f"AI_Prompts/{company_name}", "w") as f:
|
|
f.write(prompt)
|
|
return True
|