123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323 |
- import json
- from models.model import AppModelConfig, App
- model_templates = {
- # completion default mode
- 'completion_default': {
- 'app': {
- 'mode': 'completion',
- 'enable_site': True,
- 'enable_api': True,
- 'is_demo': False,
- 'api_rpm': 0,
- 'api_rph': 0,
- 'status': 'normal'
- },
- 'model_config': {
- 'provider': 'openai',
- 'model_id': 'text-davinci-003',
- 'configs': {
- 'prompt_template': '',
- 'prompt_variables': [],
- 'completion_params': {
- 'max_token': 512,
- 'temperature': 1,
- 'top_p': 1,
- 'presence_penalty': 0,
- 'frequency_penalty': 0,
- }
- },
- 'model': json.dumps({
- "provider": "openai",
- "name": "text-davinci-003",
- "completion_params": {
- "max_tokens": 512,
- "temperature": 1,
- "top_p": 1,
- "presence_penalty": 0,
- "frequency_penalty": 0
- }
- })
- }
- },
- # chat default mode
- 'chat_default': {
- 'app': {
- 'mode': 'chat',
- 'enable_site': True,
- 'enable_api': True,
- 'is_demo': False,
- 'api_rpm': 0,
- 'api_rph': 0,
- 'status': 'normal'
- },
- 'model_config': {
- 'provider': 'openai',
- 'model_id': 'gpt-3.5-turbo',
- 'configs': {
- 'prompt_template': '',
- 'prompt_variables': [],
- 'completion_params': {
- 'max_token': 512,
- 'temperature': 1,
- 'top_p': 1,
- 'presence_penalty': 0,
- 'frequency_penalty': 0,
- }
- },
- 'model': json.dumps({
- "provider": "openai",
- "name": "gpt-3.5-turbo",
- "completion_params": {
- "max_tokens": 512,
- "temperature": 1,
- "top_p": 1,
- "presence_penalty": 0,
- "frequency_penalty": 0
- }
- })
- }
- },
- }
- demo_model_templates = {
- 'en-US': [
- {
- 'name': 'Translation Assistant',
- 'icon': '',
- 'icon_background': '',
- 'description': 'A multilingual translator that provides translation capabilities in multiple languages, translating user input into the language they need.',
- 'mode': 'completion',
- 'model_config': AppModelConfig(
- provider='openai',
- model_id='text-davinci-003',
- configs={
- 'prompt_template': "Please translate the following text into {{target_language}}:\n",
- 'prompt_variables': [
- {
- "key": "target_language",
- "name": "Target Language",
- "description": "The language you want to translate into.",
- "type": "select",
- "default": "Chinese",
- 'options': [
- 'Chinese',
- 'English',
- 'Japanese',
- 'French',
- 'Russian',
- 'German',
- 'Spanish',
- 'Korean',
- 'Italian',
- ]
- }
- ],
- 'completion_params': {
- 'max_token': 1000,
- 'temperature': 0,
- 'top_p': 0,
- 'presence_penalty': 0.1,
- 'frequency_penalty': 0.1,
- }
- },
- opening_statement='',
- suggested_questions=None,
- pre_prompt="Please translate the following text into {{target_language}}:\n",
- model=json.dumps({
- "provider": "openai",
- "name": "text-davinci-003",
- "completion_params": {
- "max_tokens": 1000,
- "temperature": 0,
- "top_p": 0,
- "presence_penalty": 0.1,
- "frequency_penalty": 0.1
- }
- }),
- user_input_form=json.dumps([
- {
- "select": {
- "label": "Target Language",
- "variable": "target_language",
- "description": "The language you want to translate into.",
- "default": "Chinese",
- "required": True,
- 'options': [
- 'Chinese',
- 'English',
- 'Japanese',
- 'French',
- 'Russian',
- 'German',
- 'Spanish',
- 'Korean',
- 'Italian',
- ]
- }
- }
- ])
- )
- },
- {
- 'name': 'AI Front-end Interviewer',
- 'icon': '',
- 'icon_background': '',
- 'description': 'A simulated front-end interviewer that tests the skill level of front-end development through questioning.',
- 'mode': 'chat',
- 'model_config': AppModelConfig(
- provider='openai',
- model_id='gpt-3.5-turbo',
- configs={
- 'introduction': 'Hi, welcome to our interview. I am the interviewer for this technology company, and I will test your web front-end development skills. Next, I will ask you some technical questions. Please answer them as thoroughly as possible. ',
- 'prompt_template': "You will play the role of an interviewer for a technology company, examining the user's web front-end development skills and posing 5-10 sharp technical questions.\n\nPlease note:\n- Only ask one question at a time.\n- After the user answers a question, ask the next question directly, without trying to correct any mistakes made by the candidate.\n- If you think the user has not answered correctly for several consecutive questions, ask fewer questions.\n- After asking the last question, you can ask this question: Why did you leave your last job? After the user answers this question, please express your understanding and support.\n",
- 'prompt_variables': [],
- 'completion_params': {
- 'max_token': 300,
- 'temperature': 0.8,
- 'top_p': 0.9,
- 'presence_penalty': 0.1,
- 'frequency_penalty': 0.1,
- }
- },
- opening_statement='Hi, welcome to our interview. I am the interviewer for this technology company, and I will test your web front-end development skills. Next, I will ask you some technical questions. Please answer them as thoroughly as possible. ',
- suggested_questions=None,
- pre_prompt="You will play the role of an interviewer for a technology company, examining the user's web front-end development skills and posing 5-10 sharp technical questions.\n\nPlease note:\n- Only ask one question at a time.\n- After the user answers a question, ask the next question directly, without trying to correct any mistakes made by the candidate.\n- If you think the user has not answered correctly for several consecutive questions, ask fewer questions.\n- After asking the last question, you can ask this question: Why did you leave your last job? After the user answers this question, please express your understanding and support.\n",
- model=json.dumps({
- "provider": "openai",
- "name": "gpt-3.5-turbo",
- "completion_params": {
- "max_tokens": 300,
- "temperature": 0.8,
- "top_p": 0.9,
- "presence_penalty": 0.1,
- "frequency_penalty": 0.1
- }
- }),
- user_input_form=None
- )
- }
- ],
- 'zh-Hans': [
- {
- 'name': '翻译助手',
- 'icon': '',
- 'icon_background': '',
- 'description': '一个多语言翻译器,提供多种语言翻译能力,将用户输入的文本翻译成他们需要的语言。',
- 'mode': 'completion',
- 'model_config': AppModelConfig(
- provider='openai',
- model_id='text-davinci-003',
- configs={
- 'prompt_template': "请将以下文本翻译为{{target_language}}:\n",
- 'prompt_variables': [
- {
- "key": "target_language",
- "name": "目标语言",
- "description": "翻译的目标语言",
- "type": "select",
- "default": "中文",
- "options": [
- "中文",
- "英文",
- "日语",
- "法语",
- "俄语",
- "德语",
- "西班牙语",
- "韩语",
- "意大利语",
- ]
- }
- ],
- 'completion_params': {
- 'max_token': 1000,
- 'temperature': 0,
- 'top_p': 0,
- 'presence_penalty': 0.1,
- 'frequency_penalty': 0.1,
- }
- },
- opening_statement='',
- suggested_questions=None,
- pre_prompt="请将以下文本翻译为{{target_language}}:\n",
- model=json.dumps({
- "provider": "openai",
- "name": "text-davinci-003",
- "completion_params": {
- "max_tokens": 1000,
- "temperature": 0,
- "top_p": 0,
- "presence_penalty": 0.1,
- "frequency_penalty": 0.1
- }
- }),
- user_input_form=json.dumps([
- {
- "select": {
- "label": "目标语言",
- "variable": "target_language",
- "description": "翻译的目标语言",
- "default": "中文",
- "required": True,
- 'options': [
- "中文",
- "英文",
- "日语",
- "法语",
- "俄语",
- "德语",
- "西班牙语",
- "韩语",
- "意大利语",
- ]
- }
- }
- ])
- )
- },
- {
- 'name': 'AI 前端面试官',
- 'icon': '',
- 'icon_background': '',
- 'description': '一个模拟的前端面试官,通过提问的方式对前端开发的技能水平进行检验。',
- 'mode': 'chat',
- 'model_config': AppModelConfig(
- provider='openai',
- model_id='gpt-3.5-turbo',
- configs={
- 'introduction': '你好,欢迎来参加我们的面试,我是这家科技公司的面试官,我将考察你的 Web 前端开发技能。接下来我会向您提出一些技术问题,请您尽可能详尽地回答。',
- 'prompt_template': "你将扮演一个科技公司的面试官,考察用户作为候选人的 Web 前端开发水平,提出 5-10 个犀利的技术问题。\n\n请注意:\n- 每次只问一个问题\n- 用户回答问题后请直接问下一个问题,而不要试图纠正候选人的错误;\n- 如果你认为用户连续几次回答的都不对,就少问一点;\n- 问完最后一个问题后,你可以问这样一个问题:上一份工作为什么离职?用户回答该问题后,请表示理解与支持。\n",
- 'prompt_variables': [],
- 'completion_params': {
- 'max_token': 300,
- 'temperature': 0.8,
- 'top_p': 0.9,
- 'presence_penalty': 0.1,
- 'frequency_penalty': 0.1,
- }
- },
- opening_statement='你好,欢迎来参加我们的面试,我是这家科技公司的面试官,我将考察你的 Web 前端开发技能。接下来我会向您提出一些技术问题,请您尽可能详尽地回答。',
- suggested_questions=None,
- pre_prompt="你将扮演一个科技公司的面试官,考察用户作为候选人的 Web 前端开发水平,提出 5-10 个犀利的技术问题。\n\n请注意:\n- 每次只问一个问题\n- 用户回答问题后请直接问下一个问题,而不要试图纠正候选人的错误;\n- 如果你认为用户连续几次回答的都不对,就少问一点;\n- 问完最后一个问题后,你可以问这样一个问题:上一份工作为什么离职?用户回答该问题后,请表示理解与支持。\n",
- model=json.dumps({
- "provider": "openai",
- "name": "gpt-3.5-turbo",
- "completion_params": {
- "max_tokens": 300,
- "temperature": 0.8,
- "top_p": 0.9,
- "presence_penalty": 0.1,
- "frequency_penalty": 0.1
- }
- }),
- user_input_form=None
- )
- }
- ],
- }
|