Skip to content

Commit

Permalink
✨ feat: brand new AI provider (lobehub#5158)
Browse files Browse the repository at this point in the history
* ✨ feat: 完成 ai provider 部分的新增、menu 列表、卡片列表与开启关闭,支持 model 开关,并优化列表展示,支持 model 拉取。完成 ai models 新增和修改逻辑、排序完整实现,优化开关体验,完成 chat model select 实现。完成 provider 的配置修改与删除开发

update config

fix

add sdk type

fix toggle search issue

improve enable

优化模型开关操作体验

feat: 完成 chat model select 部分实现

fix auth

兼容 client db 废弃模式

fix test

完成 provider 的配置修改与删除开发

clean

* 修正未登录态的数据

* fix db sql

* fix lint

* update

* improve loading

* improve model list empty state
  • Loading branch information
arvinxx authored Jan 7, 2025
1 parent b603d00 commit bde6d64
Show file tree
Hide file tree
Showing 203 changed files with 22,701 additions and 137 deletions.
1 change: 1 addition & 0 deletions locales/ar/common.json
Original file line number Diff line number Diff line change
Expand Up @@ -275,6 +275,7 @@
},
"temp": "مؤقت",
"terms": "شروط الخدمة",
"update": "تحديث",
"updateAgent": "تحديث معلومات الوكيل",
"upgradeVersion": {
"action": "ترقية",
Expand Down
176 changes: 176 additions & 0 deletions locales/ar/modelProvider.json
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,44 @@
"title": "رقم حساب Cloudflare / عنوان URL API"
}
},
"createNewAiProvider": {
"apiKey": {
"placeholder": "يرجى إدخال مفتاح API الخاص بك",
"required": "يرجى إدخال مفتاح API الخاص بك",
"title": "مفتاح API"
},
"basicTitle": "المعلومات الأساسية",
"configTitle": "معلومات التكوين",
"confirm": "إنشاء جديد",
"createSuccess": "تم الإنشاء بنجاح",
"description": {
"placeholder": "نبذة عن مزود الخدمة (اختياري)",
"title": "نبذة عن مزود الخدمة"
},
"id": {
"placeholder": "يفضل أن يكون بالكامل بحروف صغيرة، مثل openai، لن يمكن تعديله بعد الإنشاء",
"required": "يرجى إدخال معرف المزود",
"title": "معرف المزود"
},
"logo": {
"required": "يرجى تحميل شعار المزود بشكل صحيح",
"title": "شعار المزود"
},
"name": {
"placeholder": "يرجى إدخال اسم العرض لمزود الخدمة",
"required": "يرجى إدخال اسم المزود",
"title": "اسم المزود"
},
"proxyUrl": {
"placeholder": "يرجى إدخال عنوان الطلب الخاص بك، إذا لم يتم إدخاله سيتم استخدام عنوان الطلب المقابل لـ SDK",
"title": "عنوان الوكيل"
},
"sdkType": {
"required": "يرجى اختيار نوع SDK",
"title": "تنسيق الطلب"
},
"title": "إنشاء مزود AI مخصص"
},
"github": {
"personalAccessToken": {
"desc": "أدخل رمز الوصول الشخصي الخاص بك على Github، انقر [هنا](https://github.com/settings/tokens) لإنشاء واحد",
Expand All @@ -77,6 +115,23 @@
"title": "رمز HuggingFace"
}
},
"list": {
"title": {
"disabled": "مزود الخدمة غير مفعل",
"enabled": "مزود الخدمة مفعل"
}
},
"menu": {
"addCustomProvider": "إضافة مزود خدمة مخصص",
"all": "الكل",
"list": {
"disabled": "غير مفعل",
"enabled": "مفعل"
},
"notFound": "لم يتم العثور على نتائج البحث",
"searchProviders": "البحث عن مزودين...",
"sort": "ترتيب مخصص"
},
"ollama": {
"checker": {
"desc": "اختبر ما إذا تم إدخال عنوان الوكيل بشكل صحيح",
Expand Down Expand Up @@ -131,6 +186,127 @@
"title": "Download specified Ollama model"
}
},
"providerModels": {
"config": {
"aesGcm": "سيتم استخدام خوارزمية التشفير <1>AES-GCM</1> لتشفير مفتاحك وعنوان الوكيل وما إلى ذلك",
"apiKey": {
"desc": "يرجى إدخال مفتاح API الخاص بك {{name}}",
"placeholder": "{{name}} مفتاح API",
"title": "مفتاح API"
},
"baseURL": {
"desc": "يجب أن يحتوي على http(s)://",
"placeholder": "https://your-proxy-url.com/v1",
"title": "عنوان وكيل API"
},
"checker": {
"button": "تحقق",
"desc": "اختبار ما إذا كان مفتاح API وعنوان الوكيل قد تم إدخالهما بشكل صحيح",
"pass": "تم التحقق بنجاح",
"title": "اختبار الاتصال"
},
"fetchOnClient": {
"desc": "سيتم بدء طلب الجلسة مباشرة من المتصفح، مما قد يحسن سرعة الاستجابة",
"title": "استخدام وضع الطلب من العميل"
},
"helpDoc": "دليل التكوين",
"waitingForMore": "المزيد من النماذج قيد <1>التخطيط للإدماج</1>، يرجى الانتظار"
},
"createNew": {
"title": "إنشاء نموذج AI مخصص"
},
"item": {
"config": "تكوين النموذج",
"customModelCards": {
"addNew": "إنشاء وإضافة نموذج {{id}}",
"confirmDelete": "سيتم حذف هذا النموذج المخصص، ولن يمكن استعادته بعد الحذف، يرجى توخي الحذر."
},
"delete": {
"confirm": "هل تؤكد حذف النموذج {{displayName}}؟",
"success": "تم الحذف بنجاح",
"title": "حذف النموذج"
},
"modelConfig": {
"azureDeployName": {
"extra": "الحقل المطلوب في Azure OpenAI",
"placeholder": "يرجى إدخال اسم نشر النموذج في Azure",
"title": "اسم نشر النموذج"
},
"displayName": {
"placeholder": "يرجى إدخال اسم العرض للنموذج، مثل ChatGPT، GPT-4، إلخ",
"title": "اسم عرض النموذج"
},
"files": {
"extra": "تنفيذ تحميل الملفات الحالي هو مجرد حل Hack، يقتصر على التجربة الذاتية. يرجى الانتظار حتى يتم تنفيذ القدرة الكاملة لتحميل الملفات لاحقًا",
"title": "دعم تحميل الملفات"
},
"functionCall": {
"extra": "سيؤدي هذا التكوين إلى فتح القدرة على استدعاء الدوال في التطبيق، ما إذا كان يدعم استدعاء الدوال يعتمد بالكامل على النموذج نفسه، يرجى اختبار قابلية استخدام استدعاء الدوال لهذا النموذج بنفسك",
"title": "دعم استدعاء الدوال"
},
"id": {
"extra": "سيتم عرضه كعلامة للنموذج",
"placeholder": "يرجى إدخال معرف النموذج، مثل gpt-4-turbo-preview أو claude-2.1",
"title": "معرف النموذج"
},
"modalTitle": "تكوين النموذج المخصص",
"tokens": {
"title": "الحد الأقصى لعدد الرموز",
"unlimited": "غير محدود"
},
"vision": {
"extra": "سيؤدي هذا التكوين إلى فتح إعدادات تحميل الصور في التطبيق، ما إذا كان يدعم التعرف يعتمد بالكامل على النموذج نفسه، يرجى اختبار قابلية استخدام التعرف البصري لهذا النموذج بنفسك",
"title": "دعم التعرف البصري"
}
},
"pricing": {
"image": "${{amount}}/صورة",
"inputCharts": "${{amount}}/M حرف",
"inputMinutes": "${{amount}}/دقيقة",
"inputTokens": "إدخال ${{amount}}/م",
"outputTokens": "إخراج ${{amount}}/م"
},
"releasedAt": "صدر في {{releasedAt}}"
},
"list": {
"addNew": "إضافة نموذج",
"disabled": "غير مفعل",
"empty": {
"desc": "يرجى إنشاء نموذج مخصص أو سحب نموذج للبدء في الاستخدام",
"title": "لا توجد نماذج متاحة"
},
"enabled": "مفعل",
"enabledActions": {
"disableAll": "تعطيل الكل",
"enableAll": "تفعيل الكل",
"sort": "ترتيب النموذج حسب التخصيص"
},
"enabledEmpty": "لا توجد نماذج مفعلة، يرجى تفعيل النماذج المفضلة لديك من القائمة أدناه~",
"fetcher": {
"clear": "مسح النماذج المستخرجة",
"fetch": "الحصول على قائمة النماذج",
"fetching": "جارٍ الحصول على قائمة النماذج...",
"latestTime": "آخر تحديث: {{time}}",
"noLatestTime": "لم يتم الحصول على القائمة بعد"
},
"search": "ابحث عن نموذج...",
"searchResult": "تم العثور على {{count}} نموذج",
"title": "قائمة النماذج",
"total": "إجمالي {{count}} نموذج متاح"
},
"searchNotFound": "لم يتم العثور على نتائج البحث"
},
"sortModal": {
"success": "تم تحديث الترتيب بنجاح",
"title": "ترتيب مخصص",
"update": "تحديث"
},
"updateAiProvider": {
"confirmDelete": "سيتم حذف مزود AI هذا، ولن يمكن استعادته بعد الحذف، هل تؤكد الحذف؟",
"deleteSuccess": "تم الحذف بنجاح",
"tooltip": "تحديث التكوين الأساسي للمزود",
"updateSuccess": "تم التحديث بنجاح"
},
"wenxin": {
"accessKey": {
"desc": "أدخل مفتاح الوصول من منصة بايدو تشيانفان",
Expand Down
1 change: 1 addition & 0 deletions locales/ar/setting.json
Original file line number Diff line number Diff line change
Expand Up @@ -411,6 +411,7 @@
"common": "إعدادات عامة",
"experiment": "تجربة",
"llm": "نموذج اللغة",
"provider": "مزود خدمة الذكاء الاصطناعي",
"sync": "مزامنة السحابة",
"system-agent": "مساعد النظام",
"tts": "خدمة الكلام"
Expand Down
1 change: 1 addition & 0 deletions locales/bg-BG/common.json
Original file line number Diff line number Diff line change
Expand Up @@ -275,6 +275,7 @@
},
"temp": "Временен",
"terms": "Условия за ползване",
"update": "Актуализиране",
"updateAgent": "Актуализирай информацията за агента",
"upgradeVersion": {
"action": "Надстрой",
Expand Down
Loading

0 comments on commit bde6d64

Please sign in to comment.