add support for novita.ai (#1910)
Browse files### What problem does this PR solve?
#1853 add support for novita.ai
### Type of change
- [x] New Feature (non-breaking change which adds functionality)
---------
Co-authored-by: Zhedong Cen <[email protected]>
- api/db/db_models.py +7 -2
- conf/llm_factories.json +134 -0
- rag/llm/__init__.py +2 -1
- rag/llm/chat_model.py +8 -0
- web/src/assets/svg/llm/novita-ai.svg +17 -0
- web/src/pages/user-setting/setting-model/constant.ts +2 -1
api/db/db_models.py
CHANGED
@@ -532,8 +532,7 @@ class LLM(DataBaseModel):
|
|
532 |
max_length=128,
|
533 |
null=False,
|
534 |
help_text="LLM name",
|
535 |
-
index=True
|
536 |
-
primary_key=True)
|
537 |
model_type = CharField(
|
538 |
max_length=128,
|
539 |
null=False,
|
@@ -558,6 +557,7 @@ class LLM(DataBaseModel):
|
|
558 |
return self.llm_name
|
559 |
|
560 |
class Meta:
|
|
|
561 |
db_table = "llm"
|
562 |
|
563 |
|
@@ -965,3 +965,8 @@ def migrate_db():
|
|
965 |
)
|
966 |
except Exception as e:
|
967 |
pass
|
|
|
|
|
|
|
|
|
|
|
|
532 |
max_length=128,
|
533 |
null=False,
|
534 |
help_text="LLM name",
|
535 |
+
index=True)
|
|
|
536 |
model_type = CharField(
|
537 |
max_length=128,
|
538 |
null=False,
|
|
|
557 |
return self.llm_name
|
558 |
|
559 |
class Meta:
|
560 |
+
primary_key = CompositeKey('fid', 'llm_name')
|
561 |
db_table = "llm"
|
562 |
|
563 |
|
|
|
965 |
)
|
966 |
except Exception as e:
|
967 |
pass
|
968 |
+
try:
|
969 |
+
DB.execute_sql('ALTER TABLE llm DROP PRIMARY KEY;')
|
970 |
+
DB.execute_sql('ALTER TABLE llm ADD PRIMARY KEY (llm_name,fid);')
|
971 |
+
except Exception as e:
|
972 |
+
pass
|
conf/llm_factories.json
CHANGED
@@ -2633,6 +2633,140 @@
|
|
2633 |
"model_type": "embedding"
|
2634 |
}
|
2635 |
]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2636 |
}
|
2637 |
]
|
2638 |
}
|
|
|
2633 |
"model_type": "embedding"
|
2634 |
}
|
2635 |
]
|
2636 |
+
},
|
2637 |
+
{
|
2638 |
+
"name": "novita.ai",
|
2639 |
+
"logo": "",
|
2640 |
+
"tags": "LLM",
|
2641 |
+
"status": "1",
|
2642 |
+
"llm": [
|
2643 |
+
{
|
2644 |
+
"llm_name": "meta-llama/llama-3-8b-instruct",
|
2645 |
+
"tags": "LLM,CHAT,8k",
|
2646 |
+
"max_tokens": 8192,
|
2647 |
+
"model_type": "chat"
|
2648 |
+
},
|
2649 |
+
{
|
2650 |
+
"llm_name": "meta-llama/llama-3-70b-instruct",
|
2651 |
+
"tags": "LLM,CHAT,8k",
|
2652 |
+
"max_tokens": 8192,
|
2653 |
+
"model_type": "chat"
|
2654 |
+
},
|
2655 |
+
{
|
2656 |
+
"llm_name": "mistralai/mistral-nemo",
|
2657 |
+
"tags": "LLM,CHAT,32k",
|
2658 |
+
"max_tokens": 32768,
|
2659 |
+
"model_type": "chat"
|
2660 |
+
},
|
2661 |
+
{
|
2662 |
+
"llm_name": "microsoft/wizardlm-2-7b",
|
2663 |
+
"tags": "LLM,CHAT,32k",
|
2664 |
+
"max_tokens": 32768,
|
2665 |
+
"model_type": "chat"
|
2666 |
+
},
|
2667 |
+
{
|
2668 |
+
"llm_name": "openchat/openchat-7b",
|
2669 |
+
"tags": "LLM,CHAT,4k",
|
2670 |
+
"max_tokens": 4096,
|
2671 |
+
"model_type": "chat"
|
2672 |
+
},
|
2673 |
+
{
|
2674 |
+
"llm_name": "meta-llama/llama-3.1-8b-instruct",
|
2675 |
+
"tags": "LLM,CHAT,8k",
|
2676 |
+
"max_tokens": 8192,
|
2677 |
+
"model_type": "chat"
|
2678 |
+
},
|
2679 |
+
{
|
2680 |
+
"llm_name": "meta-llama/llama-3.1-70b-instruct",
|
2681 |
+
"tags": "LLM,CHAT,8k",
|
2682 |
+
"max_tokens": 8192,
|
2683 |
+
"model_type": "chat"
|
2684 |
+
},
|
2685 |
+
{
|
2686 |
+
"llm_name": "meta-llama/llama-3.1-405b-instruct",
|
2687 |
+
"tags": "LLM,CHAT,32k",
|
2688 |
+
"max_tokens": 32768,
|
2689 |
+
"model_type": "chat"
|
2690 |
+
},
|
2691 |
+
{
|
2692 |
+
"llm_name": "google/gemma-2-9b-it",
|
2693 |
+
"tags": "LLM,CHAT,8k",
|
2694 |
+
"max_tokens": 8192,
|
2695 |
+
"model_type": "chat"
|
2696 |
+
},
|
2697 |
+
{
|
2698 |
+
"llm_name": "jondurbin/airoboros-l2-70b",
|
2699 |
+
"tags": "LLM,CHAT,4k",
|
2700 |
+
"max_tokens": 4096,
|
2701 |
+
"model_type": "chat"
|
2702 |
+
},
|
2703 |
+
{
|
2704 |
+
"llm_name": "nousresearch/hermes-2-pro-llama-3-8b",
|
2705 |
+
"tags": "LLM,CHAT,8k",
|
2706 |
+
"max_tokens": 8192,
|
2707 |
+
"model_type": "chat"
|
2708 |
+
},
|
2709 |
+
{
|
2710 |
+
"llm_name": "mistralai/mistral-7b-instruct",
|
2711 |
+
"tags": "LLM,CHAT,32k",
|
2712 |
+
"max_tokens": 32768,
|
2713 |
+
"model_type": "chat"
|
2714 |
+
},
|
2715 |
+
{
|
2716 |
+
"llm_name": "cognitivecomputations/dolphin-mixtral-8x22b",
|
2717 |
+
"tags": "LLM,CHAT,15k",
|
2718 |
+
"max_tokens": 16000,
|
2719 |
+
"model_type": "chat"
|
2720 |
+
},
|
2721 |
+
{
|
2722 |
+
"llm_name": "sao10k/l3-70b-euryale-v2.1",
|
2723 |
+
"tags": "LLM,CHAT,15k",
|
2724 |
+
"max_tokens": 16000,
|
2725 |
+
"model_type": "chat"
|
2726 |
+
},
|
2727 |
+
{
|
2728 |
+
"llm_name": "sophosympatheia/midnight-rose-70b",
|
2729 |
+
"tags": "LLM,CHAT,4k",
|
2730 |
+
"max_tokens": 4096,
|
2731 |
+
"model_type": "chat"
|
2732 |
+
},
|
2733 |
+
{
|
2734 |
+
"llm_name": "gryphe/mythomax-l2-13b",
|
2735 |
+
"tags": "LLM,CHAT,4k",
|
2736 |
+
"max_tokens": 4096,
|
2737 |
+
"model_type": "chat"
|
2738 |
+
},
|
2739 |
+
{
|
2740 |
+
"llm_name": "nousresearch/nous-hermes-llama2-13b",
|
2741 |
+
"tags": "LLM,CHAT,4k",
|
2742 |
+
"max_tokens": 4096,
|
2743 |
+
"model_type": "chat"
|
2744 |
+
},
|
2745 |
+
{
|
2746 |
+
"llm_name": "Nous-Hermes-2-Mixtral-8x7B-DPO",
|
2747 |
+
"tags": "LLM,CHAT,32k",
|
2748 |
+
"max_tokens": 32768,
|
2749 |
+
"model_type": "chat"
|
2750 |
+
},
|
2751 |
+
{
|
2752 |
+
"llm_name": "lzlv_70b",
|
2753 |
+
"tags": "LLM,CHAT,4k",
|
2754 |
+
"max_tokens": 4096,
|
2755 |
+
"model_type": "chat"
|
2756 |
+
},
|
2757 |
+
{
|
2758 |
+
"llm_name": "teknium/openhermes-2.5-mistral-7b",
|
2759 |
+
"tags": "LLM,CHAT,4k",
|
2760 |
+
"max_tokens": 4096,
|
2761 |
+
"model_type": "chat"
|
2762 |
+
},
|
2763 |
+
{
|
2764 |
+
"llm_name": "microsoft/wizardlm-2-8x22b",
|
2765 |
+
"tags": "LLM,CHAT,64k",
|
2766 |
+
"max_tokens": 65535,
|
2767 |
+
"model_type": "chat"
|
2768 |
+
}
|
2769 |
+
]
|
2770 |
}
|
2771 |
]
|
2772 |
}
|
rag/llm/__init__.py
CHANGED
@@ -91,7 +91,8 @@ ChatModel = {
|
|
91 |
"LeptonAI": LeptonAIChat,
|
92 |
"TogetherAI": TogetherAIChat,
|
93 |
"PerfXCloud": PerfXCloudChat,
|
94 |
-
"Upstage":UpstageChat
|
|
|
95 |
}
|
96 |
|
97 |
|
|
|
91 |
"LeptonAI": LeptonAIChat,
|
92 |
"TogetherAI": TogetherAIChat,
|
93 |
"PerfXCloud": PerfXCloudChat,
|
94 |
+
"Upstage":UpstageChat,
|
95 |
+
"novita.ai": NovitaAIChat
|
96 |
}
|
97 |
|
98 |
|
rag/llm/chat_model.py
CHANGED
@@ -1009,3 +1009,11 @@ class UpstageChat(Base):
|
|
1009 |
if not base_url:
|
1010 |
base_url = "https://api.upstage.ai/v1/solar"
|
1011 |
super().__init__(key, model_name, base_url)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1009 |
if not base_url:
|
1010 |
base_url = "https://api.upstage.ai/v1/solar"
|
1011 |
super().__init__(key, model_name, base_url)
|
1012 |
+
|
1013 |
+
|
1014 |
+
class NovitaAIChat(Base):
|
1015 |
+
def __init__(self, key, model_name, base_url="https://api.novita.ai/v3/openai"):
|
1016 |
+
if not base_url:
|
1017 |
+
base_url = "https://api.novita.ai/v3/openai"
|
1018 |
+
super().__init__(key, model_name, base_url)
|
1019 |
+
|
web/src/assets/svg/llm/novita-ai.svg
ADDED
|
web/src/pages/user-setting/setting-model/constant.ts
CHANGED
@@ -27,7 +27,8 @@ export const IconMap = {
|
|
27 |
Lepton: 'lepton',
|
28 |
TogetherAI:'together-ai',
|
29 |
PerfXCould: 'perfx-could',
|
30 |
-
Upstage: 'upstage'
|
|
|
31 |
};
|
32 |
|
33 |
export const BedrockRegionList = [
|
|
|
27 |
Lepton: 'lepton',
|
28 |
TogetherAI:'together-ai',
|
29 |
PerfXCould: 'perfx-could',
|
30 |
+
Upstage: 'upstage',
|
31 |
+
"novita.ai": 'novita-ai'
|
32 |
};
|
33 |
|
34 |
export const BedrockRegionList = [
|