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
This commit is contained in:
@@ -0,0 +1,98 @@
|
||||
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=""
|
||||
)
|
||||
Reference in New Issue
Block a user