Update README.md
Browse files
README.md
CHANGED
|
@@ -7,7 +7,7 @@ tags:
|
|
| 7 |
- conversation-analysis
|
| 8 |
- conversion-prediction
|
| 9 |
- ppo
|
| 10 |
-
-
|
| 11 |
language:
|
| 12 |
- en
|
| 13 |
pipeline_tag: reinforcement-learning
|
|
@@ -28,98 +28,344 @@ widget:
|
|
| 28 |
example_title: Price Discussion
|
| 29 |
---
|
| 30 |
|
| 31 |
-
# Sales
|
| 32 |
|
| 33 |
-
|
|
|
|
| 34 |
|
| 35 |
-
|
| 36 |
-
|
|
|
|
|
|
|
| 37 |
**Published**: arXiv:2503.23303
|
| 38 |
|
| 39 |
-
## Model
|
| 40 |
|
| 41 |
-
|
| 42 |
-
|
| 43 |
-
|
| 44 |
-
|
|
|
|
| 45 |
|
|
|
|
|
|
|
|
|
|
| 46 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 47 |
|
| 48 |
-
|
| 49 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 50 |
```bash
|
| 51 |
-
conda create -n salespy11 pip python=3.11
|
| 52 |
-
conda activate salespy11
|
| 53 |
-
pip install azure-openai stable-baselines3 numpy torch huggingface_hub
|
| 54 |
git lfs install
|
| 55 |
git clone https://huggingface.co/DeepMostInnovations/sales-conversion-model-reinf-learning
|
| 56 |
cd sales-conversion-model-reinf-learning
|
| 57 |
```
|
| 58 |
-
## Quick Start
|
| 59 |
-
**Run On Colab With unsloth/gemma-3-4b-it-GGUF model and BAAI/bge-m3 opensource embeddings**
|
| 60 |
|
| 61 |
-
|
|
|
|
| 62 |
|
| 63 |
-
|
| 64 |
-
|
| 65 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 66 |
```
|
| 67 |
|
| 68 |
-
##
|
| 69 |
-
Important to use python 3.10 version for inference case, otherwise it will cause layer dim errors
|
| 70 |
|
| 71 |
-
|
| 72 |
-
|
| 73 |
-
|
| 74 |
-
|
| 75 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 76 |
```
|
| 77 |
-
## Output
|
| 78 |
-
```bash
|
| 79 |
-
--- Conversation Predictions (with Azure OpenAI Embeddings) ---
|
| 80 |
-
Turn 1 (customer): "Hello, I'm looking for information on your new AI-powered CR..." -> Probability: 0.1744
|
| 81 |
-
Turn 2 (sales_rep): "You've come to the right place! Our new AI CRM is designed t..." -> Probability: 0.3292
|
| 82 |
-
Turn 3 (customer): "maybe not for us. its a great product, in future may buy..." -> Probability: 0.3350
|
| 83 |
-
Turn 4 (sales_rep): "Excellent, those are two key strengths. Our AI analyzes lead..." -> Probability: 0.3908
|
| 84 |
-
Turn 5 (customer): "looks oke, but maybe we can't consider..." -> Probability: 0.3833
|
| 85 |
-
```
|
| 86 |
-
## Generate And Clean Dataset
|
| 87 |
-
```bash
|
| 88 |
-
python generate_dataset.py --num_conversations 100000 --num_profiles 20 --output_path custom_dataset.csv --num_threads 15 --rate_limit 2000 --batch_size 10
|
| 89 |
-
python clean_dataset.py custom_dataset.csv --chunk_size 1000 --skip_encoding_check
|
| 90 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 91 |
```
|
| 92 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 93 |
```bash
|
| 94 |
-
|
| 95 |
-
|
| 96 |
-
|
| 97 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 98 |
```
|
| 99 |
-
## Training Data
|
| 100 |
|
| 101 |
-
|
| 102 |
-
-
|
| 103 |
-
-
|
|
|
|
|
|
|
| 104 |
|
| 105 |
-
##
|
| 106 |
-
|
| 107 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 108 |
- Price-conscious customers need ROI justification
|
| 109 |
-
- Early-stage prospects require needs assessment
|
| 110 |
-
|
| 111 |
-
- **96.7% accuracy** in conversion prediction
|
| 112 |
-
- Outperforms LLM-only approaches by 34.7%
|
| 113 |
-
- **85ms vs 3450ms** inference speed compared to GPT-4
|
| 114 |
-
- 43.2% increase in conversion rates when used by sales representatives
|
| 115 |
|
| 116 |
-
##
|
| 117 |
|
| 118 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 119 |
|
| 120 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 121 |
|
| 122 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 123 |
|
| 124 |
```bibtex
|
| 125 |
@article{nandakishor2025salesrlagent,
|
|
@@ -130,3 +376,18 @@ If you use this model, please cite:
|
|
| 130 |
url={https://arxiv.org/abs/2503.23303}
|
| 131 |
}
|
| 132 |
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 7 |
- conversation-analysis
|
| 8 |
- conversion-prediction
|
| 9 |
- ppo
|
| 10 |
+
- turn-by-turn-analysis
|
| 11 |
language:
|
| 12 |
- en
|
| 13 |
pipeline_tag: reinforcement-learning
|
|
|
|
| 28 |
example_title: Price Discussion
|
| 29 |
---
|
| 30 |
|
| 31 |
+
# Sales Conversation Analysis Model - Turn-by-Turn Prediction
|
| 32 |
|
| 33 |
+
[](https://www.python.org/downloads/)
|
| 34 |
+
[](https://opensource.org/licenses/MIT)
|
| 35 |
|
| 36 |
+
A reinforcement learning model trained to analyze sales conversations and predict conversion probability evolution turn-by-turn. **Specializes in tracking how each message impacts sales success** using advanced PPO and LLM-powered metrics.
|
| 37 |
+
|
| 38 |
+
**Paper**: [SalesRLAgent: A Reinforcement Learning Approach for Real-Time Sales Conversion Prediction and Optimization](https://arxiv.org/abs/2503.23303)
|
| 39 |
+
**Author**: Nandakishor M
|
| 40 |
**Published**: arXiv:2503.23303
|
| 41 |
|
| 42 |
+
## π Quick Start with This Model
|
| 43 |
|
| 44 |
+
### Installation
|
| 45 |
+
```bash
|
| 46 |
+
# Requires Python 3.11 for optimal compatibility
|
| 47 |
+
pip install deepmost[gpu] # Recommended for LLM features
|
| 48 |
+
```
|
| 49 |
|
| 50 |
+
### Method 1: Direct URL Download (Easiest)
|
| 51 |
+
```python
|
| 52 |
+
from deepmost import sales
|
| 53 |
|
| 54 |
+
# Automatically download and use this specific model from Hugging Face
|
| 55 |
+
agent = sales.Agent(
|
| 56 |
+
model_path="https://huggingface.co/DeepMostInnovations/sales-conversion-model-reinf-learning/resolve/main/sales_conversion_model.zip",
|
| 57 |
+
llm_model="unsloth/Qwen3-4B-GGUF", # For dynamic metrics
|
| 58 |
+
auto_download=True # Downloads and caches the model automatically
|
| 59 |
+
)
|
| 60 |
|
| 61 |
+
conversation = [
|
| 62 |
+
"Hello, I'm looking for information on your new AI-powered CRM",
|
| 63 |
+
"You've come to the right place! Our AI CRM helps increase sales efficiency. What challenges are you facing?",
|
| 64 |
+
"We struggle with lead prioritization and follow-up timing",
|
| 65 |
+
"Excellent! Our AI automatically analyzes leads and suggests optimal follow-up times. Would you like to see a demo?",
|
| 66 |
+
"That sounds interesting. What's the pricing like?"
|
| 67 |
+
]
|
| 68 |
+
|
| 69 |
+
# Get turn-by-turn analysis
|
| 70 |
+
results = agent.analyze_conversation_progression(conversation, print_results=True)
|
| 71 |
+
```
|
| 72 |
+
|
| 73 |
+
**Output:**
|
| 74 |
+
```
|
| 75 |
+
Turn 1 (customer): "Hello, I'm looking for information on your new AI-pow..." -> Probability: 0.1744
|
| 76 |
+
Turn 2 (sales_rep): "You've come to the right place! Our AI CRM helps increa..." -> Probability: 0.3292
|
| 77 |
+
Turn 3 (customer): "We struggle with lead prioritization and follow-up timing" -> Probability: 0.4156
|
| 78 |
+
Turn 4 (sales_rep): "Excellent! Our AI automatically analyzes leads and sugge..." -> Probability: 0.3908
|
| 79 |
+
Turn 5 (customer): "That sounds interesting. What's the pricing like?" -> Probability: 0.5234
|
| 80 |
+
|
| 81 |
+
Final Conversion Probability: 52.34%
|
| 82 |
+
Final Status: π‘ Medium
|
| 83 |
+
```
|
| 84 |
+
|
| 85 |
+
> **Note**: When using Method 1 (URL), the model is automatically downloaded and cached locally in `~/.deepmost/models/` for faster subsequent usage.
|
| 86 |
+
|
| 87 |
+
### Method 2: Clone Repository (For Offline Use)
|
| 88 |
```bash
|
|
|
|
|
|
|
|
|
|
| 89 |
git lfs install
|
| 90 |
git clone https://huggingface.co/DeepMostInnovations/sales-conversion-model-reinf-learning
|
| 91 |
cd sales-conversion-model-reinf-learning
|
| 92 |
```
|
|
|
|
|
|
|
| 93 |
|
| 94 |
+
```python
|
| 95 |
+
from deepmost import sales
|
| 96 |
|
| 97 |
+
# Use the local model file
|
| 98 |
+
agent = sales.Agent(
|
| 99 |
+
model_path="./sales_conversion_model.zip", # Local file path
|
| 100 |
+
llm_model="unsloth/Qwen3-4B-GGUF"
|
| 101 |
+
)
|
| 102 |
+
|
| 103 |
+
# Same analysis as above
|
| 104 |
+
results = agent.analyze_conversation_progression(conversation, print_results=True)
|
| 105 |
```
|
| 106 |
|
| 107 |
+
## π― Model Architecture & Features
|
|
|
|
| 108 |
|
| 109 |
+
### Technical Details
|
| 110 |
+
- **Framework**: Stable Baselines3 (PPO)
|
| 111 |
+
- **State Representation**: Multi-modal (embeddings + LLM-derived metrics)
|
| 112 |
+
- **Action Space**: Continuous (conversion probability 0-1)
|
| 113 |
+
- **Feature Extractor**: Custom Linear layers optimized for conversation analysis
|
| 114 |
+
- **Embeddings**: BAAI/bge-m3 (1024-dim) with optional Azure OpenAI support
|
| 115 |
+
- **Dynamic Metrics**: LLM-powered customer engagement and sales effectiveness analysis
|
| 116 |
+
|
| 117 |
+
### Key Capabilities
|
| 118 |
+
- **Turn-by-Turn Analysis**: Track probability evolution throughout conversations
|
| 119 |
+
- **Real-time Insights**: 85ms inference speed vs 3450ms for GPT-4
|
| 120 |
+
- **Dynamic Metrics**: LLM analyzes engagement and effectiveness in real-time
|
| 121 |
+
- **Sales Training**: Identify which conversation elements increase conversion
|
| 122 |
+
- **A/B Testing**: Compare different sales approaches quantitatively
|
| 123 |
+
|
| 124 |
+
## π Model Performance
|
| 125 |
+
|
| 126 |
+
According to the research paper, this model achieves:
|
| 127 |
+
- **96.7% accuracy** in conversion prediction
|
| 128 |
+
- **34.7% improvement** over LLM-only approaches
|
| 129 |
+
- **85ms inference time** vs 3450ms for GPT-4
|
| 130 |
+
- **43.2% increase** in conversion rates when used by sales representatives
|
| 131 |
+
|
| 132 |
+
### Training Data
|
| 133 |
+
- 100,000+ synthetic sales conversations generated using large language models
|
| 134 |
+
- Multiple customer types and conversation scenarios
|
| 135 |
+
- Semantic embeddings capturing conversation meaning and context
|
| 136 |
+
- Dynamic metrics for engagement and sales effectiveness
|
| 137 |
+
|
| 138 |
+
## π‘ Use Cases
|
| 139 |
+
|
| 140 |
+
### 1. Sales Training & Coaching
|
| 141 |
+
```python
|
| 142 |
+
# Analyze what makes conversations successful
|
| 143 |
+
training_conversation = [
|
| 144 |
+
{"speaker": "customer", "message": "I'm comparing different CRM vendors"},
|
| 145 |
+
{"speaker": "sales_rep", "message": "Smart approach! What's most important to you?"},
|
| 146 |
+
{"speaker": "customer", "message": "Integration with existing tools"},
|
| 147 |
+
{"speaker": "sales_rep", "message": "We integrate with 200+ tools. Which do you use?"}
|
| 148 |
+
]
|
| 149 |
+
|
| 150 |
+
results = agent.analyze_conversation_progression(training_conversation)
|
| 151 |
+
|
| 152 |
+
# Identify turns that increased/decreased probability
|
| 153 |
+
for i, result in enumerate(results[1:], 1):
|
| 154 |
+
change = result['probability'] - results[i-1]['probability']
|
| 155 |
+
trend = "π" if change > 0 else "π" if change < 0 else "β‘οΈ"
|
| 156 |
+
print(f"Turn {i+1}: {trend} {change:+.3f} change")
|
| 157 |
+
```
|
| 158 |
+
|
| 159 |
+
### 2. A/B Testing Sales Scripts
|
| 160 |
+
```python
|
| 161 |
+
# Compare different response strategies
|
| 162 |
+
script_a = ["I need pricing", "Our Pro plan is $99/month per user"]
|
| 163 |
+
script_b = ["I need pricing", "What's your team size? I'll get you accurate pricing"]
|
| 164 |
+
|
| 165 |
+
results_a = agent.analyze_conversation_progression(script_a, print_results=False)
|
| 166 |
+
results_b = agent.analyze_conversation_progression(script_b, print_results=False)
|
| 167 |
+
|
| 168 |
+
print(f"Script A: {results_a[-1]['probability']:.2%}")
|
| 169 |
+
print(f"Script B: {results_b[-1]['probability']:.2%}")
|
| 170 |
+
```
|
| 171 |
+
|
| 172 |
+
### 3. Real-time Sales Assistance
|
| 173 |
+
```python
|
| 174 |
+
# Get guidance during live conversations
|
| 175 |
+
current_conversation = [
|
| 176 |
+
{"speaker": "customer", "message": "Your solution looks expensive"},
|
| 177 |
+
{"speaker": "sales_rep", "message": "I understand the investment concern..."}
|
| 178 |
+
]
|
| 179 |
+
|
| 180 |
+
results = agent.analyze_conversation_progression(current_conversation, print_results=False)
|
| 181 |
+
current_metrics = results[-1]['metrics']
|
| 182 |
+
|
| 183 |
+
if current_metrics['customer_engagement'] < 0.5:
|
| 184 |
+
print("π‘ Suggestion: Customer engagement low. Ask open-ended questions.")
|
| 185 |
+
elif current_metrics['sales_effectiveness'] < 0.5:
|
| 186 |
+
print("π‘ Suggestion: Refine approach. Focus on value proposition.")
|
| 187 |
+
```
|
| 188 |
+
|
| 189 |
+
## π§ Configuration Options
|
| 190 |
+
|
| 191 |
+
### Backend Selection
|
| 192 |
+
```python
|
| 193 |
+
# Use open-source backend (recommended)
|
| 194 |
+
agent = sales.Agent(
|
| 195 |
+
model_path="./sales_conversion_model.zip", # This model
|
| 196 |
+
embedding_model="BAAI/bge-m3",
|
| 197 |
+
llm_model="unsloth/Qwen3-4B-GGUF",
|
| 198 |
+
use_gpu=True
|
| 199 |
+
)
|
| 200 |
+
|
| 201 |
+
# Use Azure OpenAI backend (if you have Azure credentials)
|
| 202 |
+
agent = sales.Agent(
|
| 203 |
+
model_path="./sales_model.zip", # Azure-trained variant
|
| 204 |
+
azure_api_key="your_key",
|
| 205 |
+
azure_endpoint="your_endpoint",
|
| 206 |
+
azure_deployment="text-embedding-3-large",
|
| 207 |
+
llm_model="unsloth/Qwen3-4B-GGUF"
|
| 208 |
+
)
|
| 209 |
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 210 |
|
| 211 |
+
### LLM Model Options
|
| 212 |
+
```python
|
| 213 |
+
# Recommended models for dynamic metrics
|
| 214 |
+
agent = sales.Agent(
|
| 215 |
+
model_path="./sales_conversion_model.zip",
|
| 216 |
+
llm_model="unsloth/Qwen3-4B-GGUF" # Recommended
|
| 217 |
+
# llm_model="unsloth/Llama-3.2-3B-Instruct-GGUF" # Alternative
|
| 218 |
+
# llm_model="unsloth/Llama-3.1-8B-Instruct-GGUF" # Higher quality
|
| 219 |
+
)
|
| 220 |
```
|
| 221 |
+
|
| 222 |
+
## π Advanced Analysis
|
| 223 |
+
|
| 224 |
+
### Conversation Trend Visualization
|
| 225 |
+
```python
|
| 226 |
+
import matplotlib.pyplot as plt
|
| 227 |
+
|
| 228 |
+
scenarios = {
|
| 229 |
+
"Successful Sale": [
|
| 230 |
+
"I need a CRM", "What's your team size?", "10 people",
|
| 231 |
+
"Perfect! Our Pro plan fits 5-20 users", "Sounds good!"
|
| 232 |
+
],
|
| 233 |
+
"Price Objection": [
|
| 234 |
+
"I need a CRM", "Our premium solution is $99/month",
|
| 235 |
+
"Too expensive", "Let me show ROI...", "Still too much"
|
| 236 |
+
]
|
| 237 |
+
}
|
| 238 |
+
|
| 239 |
+
plt.figure(figsize=(12, 6))
|
| 240 |
+
for scenario_name, conversation in scenarios.items():
|
| 241 |
+
results = agent.analyze_conversation_progression(conversation, print_results=False)
|
| 242 |
+
probabilities = [r['probability'] for r in results]
|
| 243 |
+
turns = list(range(1, len(probabilities) + 1))
|
| 244 |
+
|
| 245 |
+
plt.plot(turns, probabilities, marker='o', linewidth=2, label=scenario_name)
|
| 246 |
+
|
| 247 |
+
plt.xlabel('Conversation Turn')
|
| 248 |
+
plt.ylabel('Conversion Probability')
|
| 249 |
+
plt.title('Conversion Probability Evolution by Scenario')
|
| 250 |
+
plt.legend()
|
| 251 |
+
plt.grid(True, alpha=0.3)
|
| 252 |
+
plt.show()
|
| 253 |
+
```
|
| 254 |
+
|
| 255 |
+
## π οΈ Installation & Setup
|
| 256 |
+
|
| 257 |
+
### Requirements
|
| 258 |
+
- **Python 3.11** (required for optimal compatibility)
|
| 259 |
+
- PyTorch with optional CUDA support
|
| 260 |
+
- Hugging Face Transformers
|
| 261 |
+
- llama-cpp-python for LLM features
|
| 262 |
+
|
| 263 |
+
### GPU Support Setup
|
| 264 |
```bash
|
| 265 |
+
# For NVIDIA CUDA
|
| 266 |
+
CMAKE_ARGS="-DGGML_CUDA=on" pip install llama-cpp-python --upgrade --force-reinstall --no-cache-dir
|
| 267 |
+
|
| 268 |
+
# For Apple Metal (M1/M2/M3)
|
| 269 |
+
CMAKE_ARGS="-DGGML_METAL=on" pip install llama-cpp-python --upgrade --force-reinstall --no-cache-dir
|
| 270 |
+
|
| 271 |
+
# Install DeepMost
|
| 272 |
+
pip install deepmost[gpu]
|
| 273 |
+
```
|
| 274 |
+
|
| 275 |
+
### Verify Installation
|
| 276 |
+
```python
|
| 277 |
+
import torch
|
| 278 |
+
from deepmost import sales
|
| 279 |
+
|
| 280 |
+
print(f"CUDA Available: {torch.cuda.is_available()}")
|
| 281 |
+
info = sales.get_system_info()
|
| 282 |
+
print(f"Supported Backends: {info['supported_backends']}")
|
| 283 |
+
```
|
| 284 |
+
|
| 285 |
+
## π Understanding Results
|
| 286 |
+
|
| 287 |
+
Each turn analysis provides detailed metrics:
|
| 288 |
+
|
| 289 |
+
```python
|
| 290 |
+
{
|
| 291 |
+
'turn': 1, # Turn number (1-indexed)
|
| 292 |
+
'speaker': 'customer', # Who spoke
|
| 293 |
+
'message': 'I need a CRM', # Actual message
|
| 294 |
+
'probability': 0.3456, # Conversion probability
|
| 295 |
+
'status': 'π Low', # Visual indicator
|
| 296 |
+
'metrics': {
|
| 297 |
+
'customer_engagement': 0.6, # LLM-derived score (0-1)
|
| 298 |
+
'sales_effectiveness': 0.4, # LLM-derived score (0-1)
|
| 299 |
+
'conversation_length': 3.0, # Number of messages
|
| 300 |
+
'progress': 0.15 # Conversation progress
|
| 301 |
+
}
|
| 302 |
+
}
|
| 303 |
```
|
|
|
|
| 304 |
|
| 305 |
+
### Status Indicators
|
| 306 |
+
- π’ **High** (β₯70%): Strong conversion potential
|
| 307 |
+
- π‘ **Medium** (β₯50%): Good potential, build value
|
| 308 |
+
- π **Low** (β₯30%): Needs improvement, re-engage
|
| 309 |
+
- π΄ **Very Low** (<30%): Poor fit, consider re-qualifying
|
| 310 |
|
| 311 |
+
## π Research Context
|
| 312 |
+
|
| 313 |
+
This model implements the SalesRLAgent approach described in the research paper. Key innovations include:
|
| 314 |
+
|
| 315 |
+
1. **Reinforcement Learning Framework**: PPO-based training for conversation analysis
|
| 316 |
+
2. **Multi-modal State Representation**: Combines embeddings with dynamic metrics
|
| 317 |
+
3. **Real-time Performance**: Optimized for production sales environments
|
| 318 |
+
4. **Turn-by-Turn Analysis**: Novel approach to tracking conversation evolution
|
| 319 |
+
|
| 320 |
+
### Model Learned Patterns
|
| 321 |
+
The model identifies key conversation dynamics:
|
| 322 |
+
- Technical buyers respond to detailed feature discussions
|
| 323 |
- Price-conscious customers need ROI justification
|
| 324 |
+
- Early-stage prospects require thorough needs assessment
|
| 325 |
+
- Engagement patterns that predict successful outcomes
|
|
|
|
|
|
|
|
|
|
|
|
|
| 326 |
|
| 327 |
+
## π Model Files
|
| 328 |
|
| 329 |
+
This repository contains:
|
| 330 |
+
- `sales_conversion_model.zip` - Open-source trained model (recommended)
|
| 331 |
+
- `sales_model.zip` - Azure OpenAI trained variant
|
| 332 |
+
- Training and inference scripts
|
| 333 |
+
- Sample conversation data
|
| 334 |
+
|
| 335 |
+
## π€ Contributing & Usage
|
| 336 |
|
| 337 |
+
### Using in Your Applications
|
| 338 |
+
```python
|
| 339 |
+
# Initialize with this specific model
|
| 340 |
+
agent = sales.Agent(
|
| 341 |
+
model_path="https://huggingface.co/DeepMostInnovations/sales-conversion-model-reinf-learning/resolve/main/sales_conversion_model.zip",
|
| 342 |
+
llm_model="unsloth/Qwen3-4B-GGUF"
|
| 343 |
+
)
|
| 344 |
|
| 345 |
+
# Integrate into your sales tools
|
| 346 |
+
def analyze_sales_call(conversation_messages):
|
| 347 |
+
results = agent.analyze_conversation_progression(conversation_messages)
|
| 348 |
+
return {
|
| 349 |
+
'final_probability': results[-1]['probability'],
|
| 350 |
+
'trend': 'improving' if results[-1]['probability'] > results[0]['probability'] else 'declining',
|
| 351 |
+
'recommendations': generate_recommendations(results)
|
| 352 |
+
}
|
| 353 |
+
```
|
| 354 |
+
|
| 355 |
+
### Custom Training
|
| 356 |
+
To train your own variant:
|
| 357 |
+
```bash
|
| 358 |
+
git clone https://huggingface.co/datasets/DeepMostInnovations/saas-sales-conversations
|
| 359 |
+
python train.py --dataset your_data.csv --model_path custom_model --timesteps 200000
|
| 360 |
+
```
|
| 361 |
+
|
| 362 |
+
## π License & Citation
|
| 363 |
+
|
| 364 |
+
### License
|
| 365 |
+
MIT License - Feel free to use and modify for your needs.
|
| 366 |
+
|
| 367 |
+
### Citation
|
| 368 |
+
If you use this model in your research or applications, please cite:
|
| 369 |
|
| 370 |
```bibtex
|
| 371 |
@article{nandakishor2025salesrlagent,
|
|
|
|
| 376 |
url={https://arxiv.org/abs/2503.23303}
|
| 377 |
}
|
| 378 |
```
|
| 379 |
+
|
| 380 |
+
## π Links & Resources
|
| 381 |
+
|
| 382 |
+
- **PyPI Package**: [https://pypi.org/project/deepmost/](https://pypi.org/project/deepmost/)
|
| 383 |
+
- **GitHub Repository**: [https://github.com/DeepMostInnovations/deepmost](https://github.com/DeepMostInnovations/deepmost)
|
| 384 |
+
- **Research Paper**: [https://arxiv.org/abs/2503.23303](https://arxiv.org/abs/2503.23303)
|
| 385 |
+
- **Training Dataset**: [https://huggingface.co/datasets/DeepMostInnovations/saas-sales-conversations](https://huggingface.co/datasets/DeepMostInnovations/saas-sales-conversations)
|
| 386 |
+
- **Documentation**: [GitHub README](https://github.com/DeepMostInnovations/deepmost/blob/main/README.md)
|
| 387 |
+
- **Support**: support@deepmost.ai
|
| 388 |
+
|
| 389 |
+
---
|
| 390 |
+
|
| 391 |
+
**Focus on what matters: understanding how each conversation turn impacts your sales success.** π―
|
| 392 |
+
|
| 393 |
+
Made with β€οΈ by [DeepMost Innovations](https://www.deepmostai.com/)
|