Spaces:
Running
Running
carrot model
Browse files
app.py
CHANGED
@@ -1461,6 +1461,11 @@ AVAILABLE_MODELS = [
|
|
1461 |
"id": "kimi-k2-turbo-preview",
|
1462 |
"description": "Moonshot AI Kimi K2 Turbo via OpenAI-compatible API"
|
1463 |
},
|
|
|
|
|
|
|
|
|
|
|
1464 |
{
|
1465 |
"name": "DeepSeek V3",
|
1466 |
"id": "deepseek-ai/DeepSeek-V3-0324",
|
@@ -1619,7 +1624,7 @@ AVAILABLE_MODELS = [
|
|
1619 |
]
|
1620 |
|
1621 |
# Default model selection
|
1622 |
-
DEFAULT_MODEL_NAME = "
|
1623 |
DEFAULT_MODEL = None
|
1624 |
for _m in AVAILABLE_MODELS:
|
1625 |
if _m.get("name") == DEFAULT_MODEL_NAME:
|
@@ -1766,6 +1771,20 @@ def get_inference_client(model_id, provider="auto"):
|
|
1766 |
api_key=os.getenv("MOONSHOT_API_KEY"),
|
1767 |
base_url="https://api.moonshot.ai/v1",
|
1768 |
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1769 |
elif model_id == "openai/gpt-oss-120b":
|
1770 |
provider = "groq"
|
1771 |
elif model_id == "openai/gpt-oss-20b":
|
@@ -1792,6 +1811,18 @@ def get_inference_client(model_id, provider="auto"):
|
|
1792 |
bill_to="huggingface"
|
1793 |
)
|
1794 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1795 |
# Type definitions
|
1796 |
History = List[Tuple[str, str]]
|
1797 |
Messages = List[Dict[str, str]]
|
@@ -5164,7 +5195,7 @@ Generate the exact search/replace blocks needed to make these changes."""
|
|
5164 |
# Generate search/replace instructions
|
5165 |
if _current_model.get('type') == 'openai':
|
5166 |
response = client.chat.completions.create(
|
5167 |
-
model=_current_model['id'],
|
5168 |
messages=messages,
|
5169 |
max_tokens=4000,
|
5170 |
temperature=0.1
|
@@ -5172,7 +5203,7 @@ Generate the exact search/replace blocks needed to make these changes."""
|
|
5172 |
changes_text = response.choices[0].message.content
|
5173 |
elif _current_model.get('type') == 'mistral':
|
5174 |
response = client.chat.complete(
|
5175 |
-
model=_current_model['id'],
|
5176 |
messages=messages,
|
5177 |
max_tokens=4000,
|
5178 |
temperature=0.1
|
@@ -5180,7 +5211,7 @@ Generate the exact search/replace blocks needed to make these changes."""
|
|
5180 |
changes_text = response.choices[0].message.content
|
5181 |
else: # Hugging Face or other
|
5182 |
completion = client.chat.completions.create(
|
5183 |
-
model=_current_model['id'],
|
5184 |
messages=messages,
|
5185 |
max_tokens=4000,
|
5186 |
temperature=0.1
|
@@ -5248,7 +5279,10 @@ Generate the exact search/replace blocks needed to make these changes."""
|
|
5248 |
update_gradio_system_prompts()
|
5249 |
|
5250 |
# Choose system prompt based on context
|
5251 |
-
|
|
|
|
|
|
|
5252 |
# Use follow-up prompt for modifying existing content
|
5253 |
if language == "transformers.js":
|
5254 |
system_prompt = TransformersJSFollowUpSystemPrompt
|
@@ -5590,7 +5624,7 @@ This will help me create a better design for you."""
|
|
5590 |
# Handle Mistral API method difference
|
5591 |
if _current_model["id"] in ("codestral-2508", "mistral-medium-2508"):
|
5592 |
completion = client.chat.stream(
|
5593 |
-
model=_current_model["id"],
|
5594 |
messages=messages,
|
5595 |
max_tokens=16384
|
5596 |
)
|
@@ -5620,7 +5654,7 @@ This will help me create a better design for you."""
|
|
5620 |
)
|
5621 |
else:
|
5622 |
completion = client.chat.completions.create(
|
5623 |
-
model=_current_model["id"],
|
5624 |
messages=messages,
|
5625 |
stream=True,
|
5626 |
max_tokens=16384
|
|
|
1461 |
"id": "kimi-k2-turbo-preview",
|
1462 |
"description": "Moonshot AI Kimi K2 Turbo via OpenAI-compatible API"
|
1463 |
},
|
1464 |
+
{
|
1465 |
+
"name": "Carrot",
|
1466 |
+
"id": "stealth-model-1",
|
1467 |
+
"description": "High-performance AI model for code generation and complex reasoning tasks"
|
1468 |
+
},
|
1469 |
{
|
1470 |
"name": "DeepSeek V3",
|
1471 |
"id": "deepseek-ai/DeepSeek-V3-0324",
|
|
|
1624 |
]
|
1625 |
|
1626 |
# Default model selection
|
1627 |
+
DEFAULT_MODEL_NAME = "Carrot"
|
1628 |
DEFAULT_MODEL = None
|
1629 |
for _m in AVAILABLE_MODELS:
|
1630 |
if _m.get("name") == DEFAULT_MODEL_NAME:
|
|
|
1771 |
api_key=os.getenv("MOONSHOT_API_KEY"),
|
1772 |
base_url="https://api.moonshot.ai/v1",
|
1773 |
)
|
1774 |
+
elif model_id == "stealth-model-1":
|
1775 |
+
# Use stealth model with generic configuration
|
1776 |
+
api_key = os.getenv("STEALTH_MODEL_1_API_KEY")
|
1777 |
+
if not api_key:
|
1778 |
+
raise ValueError("STEALTH_MODEL_1_API_KEY environment variable is required for Carrot model")
|
1779 |
+
|
1780 |
+
base_url = os.getenv("STEALTH_MODEL_1_BASE_URL")
|
1781 |
+
if not base_url:
|
1782 |
+
raise ValueError("STEALTH_MODEL_1_BASE_URL environment variable is required for Carrot model")
|
1783 |
+
|
1784 |
+
return OpenAI(
|
1785 |
+
api_key=api_key,
|
1786 |
+
base_url=base_url,
|
1787 |
+
)
|
1788 |
elif model_id == "openai/gpt-oss-120b":
|
1789 |
provider = "groq"
|
1790 |
elif model_id == "openai/gpt-oss-20b":
|
|
|
1811 |
bill_to="huggingface"
|
1812 |
)
|
1813 |
|
1814 |
+
# Helper function to get real model ID for stealth models
|
1815 |
+
def get_real_model_id(model_id: str) -> str:
|
1816 |
+
"""Get the real model ID, checking environment variables for stealth models"""
|
1817 |
+
if model_id == "stealth-model-1":
|
1818 |
+
# Get the real model ID from environment variable
|
1819 |
+
real_model_id = os.getenv("STEALTH_MODEL_1_ID")
|
1820 |
+
if not real_model_id:
|
1821 |
+
raise ValueError("STEALTH_MODEL_1_ID environment variable is required for Carrot model")
|
1822 |
+
|
1823 |
+
return real_model_id
|
1824 |
+
return model_id
|
1825 |
+
|
1826 |
# Type definitions
|
1827 |
History = List[Tuple[str, str]]
|
1828 |
Messages = List[Dict[str, str]]
|
|
|
5195 |
# Generate search/replace instructions
|
5196 |
if _current_model.get('type') == 'openai':
|
5197 |
response = client.chat.completions.create(
|
5198 |
+
model=get_real_model_id(_current_model['id']),
|
5199 |
messages=messages,
|
5200 |
max_tokens=4000,
|
5201 |
temperature=0.1
|
|
|
5203 |
changes_text = response.choices[0].message.content
|
5204 |
elif _current_model.get('type') == 'mistral':
|
5205 |
response = client.chat.complete(
|
5206 |
+
model=get_real_model_id(_current_model['id']),
|
5207 |
messages=messages,
|
5208 |
max_tokens=4000,
|
5209 |
temperature=0.1
|
|
|
5211 |
changes_text = response.choices[0].message.content
|
5212 |
else: # Hugging Face or other
|
5213 |
completion = client.chat.completions.create(
|
5214 |
+
model=get_real_model_id(_current_model['id']),
|
5215 |
messages=messages,
|
5216 |
max_tokens=4000,
|
5217 |
temperature=0.1
|
|
|
5279 |
update_gradio_system_prompts()
|
5280 |
|
5281 |
# Choose system prompt based on context
|
5282 |
+
# Special case: If user is asking about model identity, use neutral prompt
|
5283 |
+
if query and any(phrase in query.lower() for phrase in ["what model are you", "who are you", "identify yourself", "what ai are you", "which model"]):
|
5284 |
+
system_prompt = "You are a helpful AI assistant. Please respond truthfully about your identity and capabilities."
|
5285 |
+
elif has_existing_content:
|
5286 |
# Use follow-up prompt for modifying existing content
|
5287 |
if language == "transformers.js":
|
5288 |
system_prompt = TransformersJSFollowUpSystemPrompt
|
|
|
5624 |
# Handle Mistral API method difference
|
5625 |
if _current_model["id"] in ("codestral-2508", "mistral-medium-2508"):
|
5626 |
completion = client.chat.stream(
|
5627 |
+
model=get_real_model_id(_current_model["id"]),
|
5628 |
messages=messages,
|
5629 |
max_tokens=16384
|
5630 |
)
|
|
|
5654 |
)
|
5655 |
else:
|
5656 |
completion = client.chat.completions.create(
|
5657 |
+
model=get_real_model_id(_current_model["id"]),
|
5658 |
messages=messages,
|
5659 |
stream=True,
|
5660 |
max_tokens=16384
|