Files
boladeE 859c17aad8 feat: Implement Pinecone vector store integration
- Update config.py with Pinecone settings and model configurations
- Implement VectorStore class with Pinecone backend
- Add comprehensive vector operations (add, search, delete)
- Set up proper error handling and metadata management
- Add .gitignore for Python project
2025-04-16 23:09:52 +01:00

99 lines
2.8 KiB
Python

from transformers import pipeline
from typing import List, Optional
import torch
from finetuned_model import finetuned_model
class MarketingCopywriter:
def __init__(self):
# Use the finetuned model instead of the default GPT-2
self.model = finetuned_model
def generate(
self,
prompt: str,
content_type: str,
similar_content: List[str],
tone: Optional[str] = None,
) -> str:
# Generate the marketing copy using the finetuned model
generated_texts = self.model.generate_with_context(
prompt=prompt,
content_type=content_type,
similar_content=similar_content,
tone=tone,
max_length=500,
num_return_sequences=1,
temperature=0.7,
top_p=0.9
)
# Return the first generated text
return generated_texts[0] if generated_texts else ""
def _build_context(
self,
prompt: str,
content_type: str,
similar_content: List[str],
tone: Optional[str],
target_audience: Optional[str]
) -> str:
context = f"Content Type: {content_type}\n"
if tone:
context += f"Tone: {tone}\n"
if target_audience:
context += f"Target Audience: {target_audience}\n"
context += "\nSimilar Content Examples:\n"
for content in similar_content[:3]: # Use top 3 similar content pieces
context += f"- {content}\n"
context += f"\nGenerate marketing copy for: {prompt}\n"
return context
def _post_process(self, text: str) -> str:
# Clean up the generated text
text = text.strip()
# Add any additional post-processing steps here
return text
# Initialize the copywriter
copywriter = MarketingCopywriter()
def generate_marketing_copy(
prompt: str,
content_type: str,
similar_content: List[str],
tone: Optional[str] = None,
target_audience: Optional[str] = None
) -> str:
"""
Generate marketing copy based on the given parameters.
Args:
prompt: The main prompt for content generation
content_type: Type of content (email, social media, etc.)
similar_content: List of similar content for context
tone: Optional tone specification
target_audience: Optional target audience specification
Returns:
Generated marketing copy
"""
return copywriter.generate(
prompt=prompt,
content_type=content_type,
similar_content=similar_content,
tone=tone,
target_audience=target_audience
)
generate_marketing_copy(
prompt="Help me write a blog post about the benefits of using our product",
content_type="blog post",
similar_content=[],
tone="",
target_audience=""
)