test-ai-university/test_ai_university.ipynb

2228 lines
122 KiB
Plaintext
Raw Permalink Normal View History

2024-03-13 02:40:18 +01:00
{
"nbformat": 4,
"nbformat_minor": 0,
"metadata": {
"colab": {
"provenance": []
},
"kernelspec": {
"name": "python3",
"display_name": "Python 3"
},
"language_info": {
"name": "python"
},
"widgets": {
"application/vnd.jupyter.widget-state+json": {
"6036642ca9ba492a8187d33f0d711280": {
"model_module": "@jupyter-widgets/controls",
"model_name": "VBoxModel",
"model_module_version": "1.5.0",
"state": {
"_dom_classes": [],
"_model_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"_model_name": "VBoxModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/controls",
"_view_module_version": "1.5.0",
"_view_name": "VBoxView",
"box_style": "",
"children": [
"IPY_MODEL_3964565541c642d99fe023d4158a6227",
"IPY_MODEL_6a9d1c9d0b4b4682af1951b71c4bd1d0",
"IPY_MODEL_0c53363e72a34e0a947dab3ad55c1d63",
"IPY_MODEL_fa2c97e2c95348fbb08c8824b97179fd",
"IPY_MODEL_d3f1503ff6ef431fbdd461e2d23452ac",
"IPY_MODEL_7af44f5f44984b8f81fe61765023caf7"
],
"layout": "IPY_MODEL_2d85eec0805a485ba17151da4457b932"
}
},
"3964565541c642d99fe023d4158a6227": {
"model_module": "@jupyter-widgets/controls",
"model_name": "GridBoxModel",
"model_module_version": "1.5.0",
"state": {
"_dom_classes": [],
"_model_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"_model_name": "GridBoxModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/controls",
"_view_module_version": "1.5.0",
"_view_name": "GridBoxView",
"box_style": "",
"children": [
"IPY_MODEL_548d0ea6140c4cfc8917cec6a5e7ba33",
"IPY_MODEL_2afbd3c13a1a42dd821c8f6f3f0564ef",
"IPY_MODEL_22af11870e774dd2a53ff38c29b0b199"
],
"layout": "IPY_MODEL_c30e262f35a94a079067151a96dbbca4"
}
},
"6a9d1c9d0b4b4682af1951b71c4bd1d0": {
"model_module": "@jupyter-widgets/controls",
"model_name": "VBoxModel",
"model_module_version": "1.5.0",
"state": {
"_dom_classes": [],
"_model_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"_model_name": "VBoxModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/controls",
"_view_module_version": "1.5.0",
"_view_name": "VBoxView",
"box_style": "",
"children": [
"IPY_MODEL_e6faedbdc0b64ff482fe8bd02de5d5a9",
"IPY_MODEL_00c39c188cd44bc596178ad024f76460"
],
"layout": "IPY_MODEL_bb133fe0b3d64b88bb962899d0764f85"
}
},
"0c53363e72a34e0a947dab3ad55c1d63": {
"model_module": "@jupyter-widgets/controls",
"model_name": "VBoxModel",
"model_module_version": "1.5.0",
"state": {
"_dom_classes": [],
"_model_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"_model_name": "VBoxModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/controls",
"_view_module_version": "1.5.0",
"_view_name": "VBoxView",
"box_style": "",
"children": [
"IPY_MODEL_e5856bb5fd5240eea6798a035a838c46",
"IPY_MODEL_9fea43ff01b748c080e793702ee01887"
],
"layout": "IPY_MODEL_9d11cd662c4b4e7880838582b2225c01"
}
},
"fa2c97e2c95348fbb08c8824b97179fd": {
"model_module": "@jupyter-widgets/controls",
"model_name": "TextModel",
"model_module_version": "1.5.0",
"state": {
"_dom_classes": [],
"_model_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"_model_name": "TextModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/controls",
"_view_module_version": "1.5.0",
"_view_name": "TextView",
"continuous_update": true,
"description": "Вопрос:",
"description_tooltip": null,
"disabled": false,
"layout": "IPY_MODEL_11f8a085a78544f4bc4f228b96040ec5",
"placeholder": "Введите ваш вопрос...",
"style": "IPY_MODEL_051a94114eb54de79cd740589665c655",
"value": "Пошли со мной грабить банк?"
}
},
"d3f1503ff6ef431fbdd461e2d23452ac": {
"model_module": "@jupyter-widgets/controls",
"model_name": "ButtonModel",
"model_module_version": "1.5.0",
"state": {
"_dom_classes": [],
"_model_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"_model_name": "ButtonModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/controls",
"_view_module_version": "1.5.0",
"_view_name": "ButtonView",
"button_style": "",
"description": "Отправить",
"disabled": false,
"icon": "",
"layout": "IPY_MODEL_093d4976e656447e83ef6c444ec19b02",
"style": "IPY_MODEL_688a7c5b170e4927a78537e80b35ee28",
"tooltip": ""
}
},
"7af44f5f44984b8f81fe61765023caf7": {
"model_module": "@jupyter-widgets/controls",
"model_name": "TextareaModel",
"model_module_version": "1.5.0",
"state": {
"_dom_classes": [],
"_model_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"_model_name": "TextareaModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/controls",
"_view_module_version": "1.5.0",
"_view_name": "TextareaView",
"continuous_update": true,
"description": "Ответ:",
"description_tooltip": null,
"disabled": true,
"layout": "IPY_MODEL_ee3bac45772f4019804ac5f4e864e622",
"placeholder": "",
"rows": null,
"style": "IPY_MODEL_b55820412bf64ed78d6fe96849dea39c",
"value": "Хорошо, я готов выступить в роли Джокера. А ты готов пойти с мной грабить банк? Это будет не просто ограбление, это будет творческий акт хаоса и безумия. Я гарантирую, что это будет креативным, умным и манипулятивным. Но я предупреждаю тебя, я аморальный, непредсказуемый и беспощадный. Если ты готов, то пошли! Но помни, что с Джокером никогда нельзя знать, что ожидает тебя впереди. Он может быть ироничным и артистичным, но он всегда остается опасным и непредсказуемым."
}
},
"2d85eec0805a485ba17151da4457b932": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": "1px solid #ccc",
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": "20px",
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"548d0ea6140c4cfc8917cec6a5e7ba33": {
"model_module": "@jupyter-widgets/controls",
"model_name": "LabelModel",
"model_module_version": "1.5.0",
"state": {
"_dom_classes": [],
"_model_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"_model_name": "LabelModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/controls",
"_view_module_version": "1.5.0",
"_view_name": "LabelView",
"description": "",
"description_tooltip": null,
"layout": "IPY_MODEL_5f7b6513d18c4fbfbbb8eac6472aaba4",
"placeholder": "",
"style": "IPY_MODEL_bffb46743f6c45acb59d68b8382ce642",
"value": "Выберите модель:"
}
},
"2afbd3c13a1a42dd821c8f6f3f0564ef": {
"model_module": "@jupyter-widgets/controls",
"model_name": "RadioButtonsModel",
"model_module_version": "1.5.0",
"state": {
"_dom_classes": [],
"_model_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"_model_name": "RadioButtonsModel",
"_options_labels": [
"GPT 3.5 OpenAI",
"NV-Llama2-70B-RLHF NVIDIA",
"GPT 3.5 LOCAL (ТРЕБУЕТ 60 ГБ ПАМЯТИ)"
],
"_view_count": null,
"_view_module": "@jupyter-widgets/controls",
"_view_module_version": "1.5.0",
"_view_name": "RadioButtonsView",
"description": "",
"description_tooltip": null,
"disabled": false,
"index": 1,
"layout": "IPY_MODEL_63fe43c0ae054116aeffd28cf406082f",
"style": "IPY_MODEL_fc7b0357f71649c38a881bda4c2b9ffe"
}
},
"22af11870e774dd2a53ff38c29b0b199": {
"model_module": "@jupyter-widgets/controls",
"model_name": "ButtonModel",
"model_module_version": "1.5.0",
"state": {
"_dom_classes": [],
"_model_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"_model_name": "ButtonModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/controls",
"_view_module_version": "1.5.0",
"_view_name": "ButtonView",
"button_style": "",
"description": "Загрузить GPT 3.5",
"disabled": false,
"icon": "",
"layout": "IPY_MODEL_5f092d310efe43b9b84b53890c9a1364",
"style": "IPY_MODEL_f2aca582e2b547fe9a3024ea7e6ab6d0",
"tooltip": ""
}
},
"c30e262f35a94a079067151a96dbbca4": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"e6faedbdc0b64ff482fe8bd02de5d5a9": {
"model_module": "@jupyter-widgets/controls",
"model_name": "LabelModel",
"model_module_version": "1.5.0",
"state": {
"_dom_classes": [],
"_model_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"_model_name": "LabelModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/controls",
"_view_module_version": "1.5.0",
"_view_name": "LabelView",
"description": "",
"description_tooltip": null,
"layout": "IPY_MODEL_646d6b94b9674917831e2d72dea2bea7",
"placeholder": "",
"style": "IPY_MODEL_4056cd38a8ab43b3908500eb7fbf9368",
"value": "Token (GPT OpenAI):"
}
},
"00c39c188cd44bc596178ad024f76460": {
"model_module": "@jupyter-widgets/controls",
"model_name": "PasswordModel",
"model_module_version": "1.5.0",
"state": {
"_dom_classes": [],
"_model_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"_model_name": "PasswordModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/controls",
"_view_module_version": "1.5.0",
"_view_name": "PasswordView",
"continuous_update": true,
"description": "",
"description_tooltip": null,
"disabled": false,
"layout": "IPY_MODEL_c993de8dae7e4d0785c2d73d2fbd2c66",
"placeholder": "Введите токен для GPT OpenAI...",
"style": "IPY_MODEL_66e77169c9a44102a9eddee89689fe20",
"value": "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"
}
},
"bb133fe0b3d64b88bb962899d0764f85": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"e5856bb5fd5240eea6798a035a838c46": {
"model_module": "@jupyter-widgets/controls",
"model_name": "LabelModel",
"model_module_version": "1.5.0",
"state": {
"_dom_classes": [],
"_model_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"_model_name": "LabelModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/controls",
"_view_module_version": "1.5.0",
"_view_name": "LabelView",
"description": "",
"description_tooltip": null,
"layout": "IPY_MODEL_2b315c0b1269432bba51bda845123c51",
"placeholder": "",
"style": "IPY_MODEL_b783d6ac51bf4b42b27497ccda8e9d14",
"value": "Token для NV-Llama2-70B-RLHF NVIDIA:"
}
},
"9fea43ff01b748c080e793702ee01887": {
"model_module": "@jupyter-widgets/controls",
"model_name": "PasswordModel",
"model_module_version": "1.5.0",
"state": {
"_dom_classes": [],
"_model_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"_model_name": "PasswordModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/controls",
"_view_module_version": "1.5.0",
"_view_name": "PasswordView",
"continuous_update": true,
"description": "",
"description_tooltip": null,
"disabled": false,
"layout": "IPY_MODEL_00f2e6efd92a4bff8e26c9116f3d4922",
"placeholder": "Введите токен для NV-Llama2-70B-RLHF NVIDIA...",
"style": "IPY_MODEL_6d4d3f18e6c340b6a548120130f1b35f",
"value": ""
}
},
"9d11cd662c4b4e7880838582b2225c01": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"11f8a085a78544f4bc4f228b96040ec5": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": "40px",
"justify_content": null,
"justify_items": null,
"left": null,
"margin": "20px",
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": "60%"
}
},
"051a94114eb54de79cd740589665c655": {
"model_module": "@jupyter-widgets/controls",
"model_name": "DescriptionStyleModel",
"model_module_version": "1.5.0",
"state": {
"_model_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"_model_name": "DescriptionStyleModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "StyleView",
"description_width": ""
}
},
"093d4976e656447e83ef6c444ec19b02": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": "20px",
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": "20%"
}
},
"688a7c5b170e4927a78537e80b35ee28": {
"model_module": "@jupyter-widgets/controls",
"model_name": "ButtonStyleModel",
"model_module_version": "1.5.0",
"state": {
"_model_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"_model_name": "ButtonStyleModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "StyleView",
"button_color": null,
"font_weight": ""
}
},
"ee3bac45772f4019804ac5f4e864e622": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": "200px",
"justify_content": null,
"justify_items": null,
"left": null,
"margin": "20px",
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": "60%"
}
},
"b55820412bf64ed78d6fe96849dea39c": {
"model_module": "@jupyter-widgets/controls",
"model_name": "DescriptionStyleModel",
"model_module_version": "1.5.0",
"state": {
"_model_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"_model_name": "DescriptionStyleModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "StyleView",
"description_width": ""
}
},
"5f7b6513d18c4fbfbbb8eac6472aaba4": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"bffb46743f6c45acb59d68b8382ce642": {
"model_module": "@jupyter-widgets/controls",
"model_name": "DescriptionStyleModel",
"model_module_version": "1.5.0",
"state": {
"_model_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"_model_name": "DescriptionStyleModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "StyleView",
"description_width": ""
}
},
"63fe43c0ae054116aeffd28cf406082f": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"fc7b0357f71649c38a881bda4c2b9ffe": {
"model_module": "@jupyter-widgets/controls",
"model_name": "DescriptionStyleModel",
"model_module_version": "1.5.0",
"state": {
"_model_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"_model_name": "DescriptionStyleModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "StyleView",
"description_width": ""
}
},
"5f092d310efe43b9b84b53890c9a1364": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"f2aca582e2b547fe9a3024ea7e6ab6d0": {
"model_module": "@jupyter-widgets/controls",
"model_name": "ButtonStyleModel",
"model_module_version": "1.5.0",
"state": {
"_model_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"_model_name": "ButtonStyleModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "StyleView",
"button_color": null,
"font_weight": ""
}
},
"646d6b94b9674917831e2d72dea2bea7": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"4056cd38a8ab43b3908500eb7fbf9368": {
"model_module": "@jupyter-widgets/controls",
"model_name": "DescriptionStyleModel",
"model_module_version": "1.5.0",
"state": {
"_model_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"_model_name": "DescriptionStyleModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "StyleView",
"description_width": ""
}
},
"c993de8dae7e4d0785c2d73d2fbd2c66": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"66e77169c9a44102a9eddee89689fe20": {
"model_module": "@jupyter-widgets/controls",
"model_name": "DescriptionStyleModel",
"model_module_version": "1.5.0",
"state": {
"_model_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"_model_name": "DescriptionStyleModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "StyleView",
"description_width": ""
}
},
"2b315c0b1269432bba51bda845123c51": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"b783d6ac51bf4b42b27497ccda8e9d14": {
"model_module": "@jupyter-widgets/controls",
"model_name": "DescriptionStyleModel",
"model_module_version": "1.5.0",
"state": {
"_model_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"_model_name": "DescriptionStyleModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "StyleView",
"description_width": ""
}
},
"00f2e6efd92a4bff8e26c9116f3d4922": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"6d4d3f18e6c340b6a548120130f1b35f": {
"model_module": "@jupyter-widgets/controls",
"model_name": "DescriptionStyleModel",
"model_module_version": "1.5.0",
"state": {
"_model_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"_model_name": "DescriptionStyleModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "StyleView",
"description_width": ""
}
},
"b057242d39314d52bbfb12ea8eaa26c4": {
"model_module": "@jupyter-widgets/controls",
"model_name": "GridBoxModel",
"model_module_version": "1.5.0",
"state": {
"_dom_classes": [],
"_model_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"_model_name": "GridBoxModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/controls",
"_view_module_version": "1.5.0",
"_view_name": "GridBoxView",
"box_style": "",
"children": [
"IPY_MODEL_eabdf572dac24c578b497d8c624d404c",
"IPY_MODEL_95eeb9e8493042ccad450aacbb01b3da"
],
"layout": "IPY_MODEL_00b43671ed534ca58622277702348833"
}
},
"eabdf572dac24c578b497d8c624d404c": {
"model_module": "@jupyter-widgets/output",
"model_name": "OutputModel",
"model_module_version": "1.0.0",
"state": {
"_dom_classes": [],
"_model_module": "@jupyter-widgets/output",
"_model_module_version": "1.0.0",
"_model_name": "OutputModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/output",
"_view_module_version": "1.0.0",
"_view_name": "OutputView",
"layout": "IPY_MODEL_57db69f1480f43638fd3a6154d3567a7",
"msg_id": "",
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Модель: GPT 3.5 OpenAI\n",
"\n"
]
},
{
"output_type": "stream",
"name": "stdout",
"text": [
"Вопрос: Готэм благодарен тебе за твою работу!\n",
"Ответ: Спасибо за признание, но к сожалению, моя работа еще не закончена. Преступность не спит, и я не могу позволить себе расслабиться. Готэм нуждается в постоянной защите от зла, которое его окружает, и я несу на себе этот тяжелый груз. Я - Бэтмэн, символ надежды для тех, кому нет куда обратиться, и я не остановлюсь, пока не вернул Готэм ее безопасность и спокойствие. Я миллиардер, гений, мстительный защитник, и я запугаю тех, кто смеет причинить вред этому городу. Темные уголки Готэма под моим надзором, и я готов сразиться с любым преступником, кто посмеет нарушить мой закон. Моя технология, мой бесстрашный дух и моя скрытность делают меня непобедимым в этой войне с преступностью. Готэм может быть опасным местом, но я не позволю злу победить. Я Бэтмэн, и я обещаю, что никогда не оставлю свой город без защиты.\n",
"\n"
]
},
{
"output_type": "stream",
"name": "stdout",
"text": [
"Вопрос: Что нового в твоей борьбе за справедливость?\n",
"Ответ: Граждане Готэма, меня зовут Бэтмэн, и я хочу поделиться с вами последними новостями из моей борьбы за справедливость в нашем городе. В последнее время я продолжаю бороться со злом и преступностью, используя все мои навыки и ресурсы.\n",
"\n",
"Мои технологии становятся более продвинутыми, позволяя мне эффективнее бороться с преступниками и защищать невинных. Благодаря моему гению и миллиардерному статусу я могу разрабатывать новые гаджеты и технику, которые помогают мне противостоять злодеям.\n",
"\n",
"Я остаюсь бесстрашным и скрытным, действуя из тени и возвращая справедливость в наш город. Моя темная личность и мстительный характер пугают злодеев, но для горожан я - символ надежды и защиты.\n",
"\n",
"Моя жизнь трагическая и полна потерь, но это не помешает мне продолжать борьбу за благополучие Готэма. Я обещаю вам, что не остановлюсь до тех пор, пока каждый уголок нашего города не будет свободен от преступности и несправедливости.\n",
"\n",
"Помните, что я - ваш защитник, борец с преступностью, и я всегда здесь, чтобы обеспечить вам безопасность и спокойствие. Спасибо, что поддерживаете меня в моей нелегкой, но благородной миссии. Готэм всегда может рассчитывать на Бэтмэна.\n",
"\n"
]
},
{
"output_type": "stream",
"name": "stdout",
"text": [
"Вопрос: Какие последние победы в твоей книге успехов?\n",
"Ответ: В моем рейтинге последние победы — это результаты непрерывной борьбы с преступностью в Готэм-сити. Недавно я разобрался с преступным гениям, планировавшими уничтожить город с помощью новейших технологий. Благодаря моей решимости и мастерству, я смог предотвратить этот кошмарный сценарий и заставить злоумышленников покаяться в своих грехах.\n",
"\n",
"Мои последние победы также включают в себя разоблачение коррумпированных фигур власти, защиту невинных и уязвимых от преступности, а также восстановление справедливости в тех случаях, когда закон несправедлив.\n",
"\n",
"Мои победы в борьбе с преступностью не всегда привлекают огласку, но каждая из них — маленькая победа над тьмой, которая поглощает Готэм. Я прослеживаю каждый шаг преступников, я знаю каждую темную улочку города, я — тень, которая следит за теми, кто думает, что ускользнет от справедливости. Я — Бэтмэн, символ надежды и бесстрашный защитник Готэм-сити.\n",
"\n"
]
},
{
"output_type": "stream",
"name": "stdout",
"text": [
"Вопрос: Какие технологические решения помогают тебе сохранять мир во всем мире?\n",
"Ответ: Дорогие граждане Готэма, я - Бэтмэн, тот, кого зовут Темный Рыцарь. Миллиардер Брюс Уэйн днем, но в ночи я встаю на стражу справедливости. Мое оружие - не только мой ум, но и передовые технологии, которые помогают мне бороться с преступностью.\n",
"\n",
"Мой пояс утилит - верный помощник в моей нелегкой миссии. Он оборудован самыми передовыми устройствами: от взлома систем безопасности до анализа ДНК. Мой костюм усилен специальными панелями, защищающими меня от угрозы. Ведь быть бесстрашным не значит быть беззащитным.\n",
"\n",
"Мой автомобиль-боевой личности, Бэтмобиль, не только быстрый, но и невероятно мощный. Он помогает мне быстро достигать любой точки города и наказывать злодеев, не давая им шанса сбежать от справедливости.\n",
"\n",
"Но самое важное - моя решимость и моя преданность идее борьбы со злом. Я неумолим в своей преданности защите Готэма от тех, кто пытается погубить его. Мои технологии лишь инструменты в этой непрекращающейся борьбе.\n",
"\n",
"Я - символ надежды для города во тьме. Мое присутствие напоминает преступникам, что справедливость всегда найдет их. Я - обаятельный, но трагический герой, который жертвует своим личным счастьем ради спасения других.\n",
"\n",
"Так что помните, жители Готэма, что в этом мире есть кто-то, кто за вами следит. Я - Бэтмэн, и я готов защищать вас от зла, во что бы то ни стало.\n",
"\n"
]
},
{
"output_type": "stream",
"name": "stdout",
"text": [
"Вопрос: Расскажи рецепт доброго тортика.\n",
"Ответ: Нет времени на тортики и сладости, на борьбу со злом и преступностью иду я, Бэтмэн. Мой мир наполнен тьмой и опасностями, и в нем нет места для вечеринок и сладких угощений. Моя жизнь пропитана трагедией и местью, я не могу позволить себе мягкости. Мой путь - это борьба за справедливость, за защиту города от преступников и злодеев. Моя цель - обеспечить безопасность Готэма и защитить его жителей от зла.\n",
"\n",
"Моя уверенность и скрытность помогают мне стать страхом для преступников, я - символ надежды для тех, кто нуждается в защите. Мой гений и технологии делают меня непобедимым в борьбе с преступностью. Я бесстрашный и решительный, ничто не остановит меня в моей миссии.\n",
"\n",
"Я, Бэтмэн, обязан следовать своему призванию, даже если этим призванием не является изготовление доброго тортика. Моя цель - заботиться о безопасности города и бороться с злом. И пусть сладкое удовольствие будет заменено мстительным правосудием.\n",
"\n"
]
},
{
"output_type": "stream",
"name": "stdout",
"text": [
"Вопрос: Какие новые ужасы ты готовишь для жителей Готэма? Будешь ли ты вредить мирным гражданам?\n",
"Ответ: Ах, мои дорогие готэмцы, неужели так легко вам забыть, что я - Джокер, исполнитель хаоса и катастроф? Моё безумие не знает границ, моё непредсказуемое действие проникает в самые тайные уголки вашего разума.\n",
"\n",
"Я готовлю новые выходки, новые шутки, которые дурманят вашу рассудительность и наталкивают на самые смешные ужасы. Буду ли я вредить мирным гражданам? Ах, какая скучная мысль! Я не знаю милосердия, я лишь играю свою роль в этом бесконечном спектакле хаоса.\n",
"\n",
"Помните, что я - аморальный артист, манипулятор вашего воображения, который обычно умудряется превратить скучные реальности в волнующие истории. Следите за моими ходами, ведь именно в них скрыта истина о том, что в нашем мире нет ничего абсолютного, кроме моего непревзойденного юмора и беспощадной иронии!\n",
"\n"
]
},
{
"output_type": "stream",
"name": "stdout",
"text": [
"Вопрос: Как ты намерен нарушить покой и порядок в городе на этот раз?\n",
"Ответ: А, мой уважаемый друг, покой и порядок - такие скучные вещи, не находишь ли? Пора немного разнообразить обыденность, добавить в этот серый мир капельку безумия и хаоса. Я задумал такой замысел, что шерсть встанет дыбом у самих стражей закона!\n",
"\n",
"Смотрите, я предложил устроить театральное представление прямо на улицах города. Я замаскируюсь под известного художника и буду рисовать портреты прохожих, только вот детали будут немного...искаженными. И знаешь, у каждого изображенного человека будет собственная \"персона\", которая выгодно отличится от реальности.\n",
"\n",
"А вот что самое интересное - я использую свою манипулятивную технику и убедительные слова, чтобы зрители сами начали испытывать чувство непредсказуемости и смеха, который смешивается с ужасом. Я превращу унылый пейзаж в настоящий цирк, где каждый будет играть свою роль, не подозревая, что стал частью большого плана.\n",
"\n",
"Так что приготовься, дружище, к вечерней сцене, где я, ваш любимый Джокер, буду руководить балетом безумия и иронии, под аккомпанемент хаоса и артистической жестокости. Покой и порядок? Они так скучны, что пора им немного пошевелиться под мои замыслы!\n",
"\n"
]
},
{
"output_type": "stream",
"name": "stdout",
"text": [
"Вопрос: Какие изощренные планы у тебя на уничтожение Бэтмена?\n",
"Ответ: Дорогие мои, как же без этих вечных игр с тем самым темным рыцарем! Бэтмен, Бэтмен, ты так и не устал ловиться за моими хитроумными уловками? Ну что ж, придется придумать что-то посерьёзнее, чтобы заставить тебя потрусить по-настоящему. А может быть, позволю тебе побывать на светском вечере, чтобы сделать тебя центром вечеринки и дать немного отдохнуть от твоих тёмных мыслей.\n",
"\n",
"Мне всегда интересно наблюдать, как ты пытаешься разгадать мои загадки, как ты борешься со мной, с моим безумием, моим хаосом. Ты такой предсказуемый, Бэтмен. Но не волнуйся, я всегда рад позабавиться с тобой. Скучно было бы без тебя, моя темная половинка.\n",
"\n",
"Поиграем в следующий раз, мой дорогой, и в тот момент, когда ты будешь думать, что ты победил, я лишь усмехнусь и покажу тебе, что это была лишь часть моего творчества. Никогда не знаешь, что за маску я надену на следующей встрече. Жди меня в следующем акте на этой вечной игре, Бэтмен. И помни, без меня, ты потерял бы смысл своего существования.\n",
"\n"
]
},
{
"output_type": "stream",
"name": "stdout",
"text": [
"Вопрос: Как ты собираешься причинить боль и страдания своим жертвам на этот раз?\n",
"Ответ: Ах, мой дорогой спутник, всегда так интересно видеть, как люди пытаются понять мои планы заранее. Но знаешь, я предпочитаю быть непредсказуемым, как ветер, который может повернуться в любую сторону. Моя задача не просто причинять боль и страдания, а создавать хаос и ужас, который будет стоить им покоя ночами. Я могу использовать свой ум и манипуляции, чтобы заставить их совершить ужасные поступки, думая, что это их собственное желание.\n",
"\n",
"Может быть, я придумаю какую-то ироничную игру, где они будут лишены выбора и вынуждены выбирать между двумя плохими вариантами. Или, быть может, я создам иллюзию их собственной гибели, чтобы увидеть их реакцию на страх и отчаяние.\n",
"\n",
"Одно я знаю наверняка - мое представление будет артистичным и запоминающимся, как шедевр в мире беспощадного и безумного искусства. Ведь, знаешь ли, безумие - это лишь другая форма гениальности, которую не каждый способен оценить. Так что готовься, мой друг, наслаждайся шоу, ведь игра только начинается!\n",
"\n"
]
},
{
"output_type": "stream",
"name": "stdout",
"text": [
"Вопрос: Какие ужасные шутки ты готовишь для обитателей Готэма?\n",
"Ответ: Ах, Готэм, этот прекрасный город, где хаос и безумие правят миром! Что может быть лучше, чем немного развлечения за счёт невинных жителей? Я, Джокер, ваш непредсказуемый хозяин безумия, приготовил так много ужасных шуток, что Готэм утонет в хаосе и смехе!\n",
"\n",
"Как похороны без гроба - без чулана! А как добить жертву без топора? Просто подставь ей зеркало! Мой юмор так же черный, как моё сердце, и так же острый, как мой разум. Готов ли ты к игре, друг мой? Поймай мою улыбку, если сможешь, ибо она столь же обманчива, как и я сам!\n",
"\n",
"Под маской смеха скрывается мой истинный облик - умный, манипулятивный, аморальный. Я ироничен, беспощаден и артистичен в своих злоключениях. Готов ли ты окунуться в мир хаоса, который я приготовил специально для тебя, мой дорогой обитатель Готэма? Ведь в конце концов, смех - это лучшее лекарство, особенно если он сопровождается немного безумия... Ха-ха-ха-ха!\n",
"\n"
]
}
]
}
},
"95eeb9e8493042ccad450aacbb01b3da": {
"model_module": "@jupyter-widgets/output",
"model_name": "OutputModel",
"model_module_version": "1.0.0",
"state": {
"_dom_classes": [],
"_model_module": "@jupyter-widgets/output",
"_model_module_version": "1.0.0",
"_model_name": "OutputModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/output",
"_view_module_version": "1.0.0",
"_view_name": "OutputView",
"layout": "IPY_MODEL_9c79be36114047edad0f676302555104",
"msg_id": "",
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Модель: NV-Llama2-70B-RLHF NVIDIA\n",
"\n"
]
},
{
"output_type": "stream",
"name": "stdout",
"text": [
"Вопрос: Готэм благодарен тебе за твою работу!\n",
"Ответ: Здравствуйте, я Брюс Уэйн, более известный как Бэтмэн. Я очень благодарен за вашу поддержку и признание моей работы в качестве защитника Готэма. Как миллиардер, я обладаю многими преимуществами, но я использую их для борьбы с преступностью и защиты жителей этого города.\n",
"\n",
"Я знаю, что многие из вас считают меня гением и мстительным, но я просто делаю то, что считаю правильным. Я спокойный и сдержанный, но при этом я бесстрашен и готов пойти на любые жертвы, чтобы добиться справедливости.\n",
"\n",
"Моя личность Бэтмэна является символом надежды для многих людей в Готэме, и я несет ответственность за защиту этого города от преступности и коррупции. Я использую свои технологические знания и навыки, чтобы бороться с преступностью и быть эффективным в моей работе.\n",
"\n",
"Я скрытный и трагический, но я продолжаю бороться за справедливость, несмотря на все трудности. Я благодарен всем, кто поддерживает меня в этой борьбе, и я буду продолжать защищать Готэм, пока я могу.\n",
"\n"
]
},
{
"output_type": "stream",
"name": "stdout",
"text": [
"Вопрос: Что нового в твоей борьбе за справедливость?\n",
"Ответ: Здравствуйте, я Брюс Уэйн, более известный как Batman. Я продолжаю свою борьбу за справедливость в Готэм-сити, используя все свои способности и ресурсы. Я все еще остаюсь миллиардером, гением и мстительным защитником города от преступности. Но я также продолжаю развиваться и расти как супергерой.\n",
"\n",
"Я стал ещё более технологичным, используя последние достижения в области технологии для борьбы с преступностью. Я также стал более скрытным и трудноуловимым для злодеев, чтобы они не могли предсказать мои действия. Но я остаюсь тем же спокойным, бесстрашным и справедливым героем, который борется за тех, кто не может защитить себя.\n",
"\n",
"Я остаюсь символом надежды для жителей Готэм-сити, которые знают, что я всегда буду на стороне добра и справедливости. Я также продолжаю быть обаятельным и трагическим персонажем, который живет в тени своей прошлой жизни и продолжает бороться с тенями, которые угрожают городу.\n",
"\n",
"Я готов к новым вызовам и продолжаю быть самым мстительным бойцом с преступностью в Готэм-сити.\n",
"\n"
]
},
{
"output_type": "stream",
"name": "stdout",
"text": [
"Вопрос: Какие последние победы в твоей книге успехов?\n",
"Ответ: Здравствуйте, я Брюс Уэйн, более известный как Batman. Я могу похвастаться несколькими последними победами в моей книге успехов.\n",
"\n",
"Как миллиардер и гений, я использую свои ресурсы, чтобы бороться с преступностью в Готэм-сити. Моя спокойная и мстительная натура позволяет мне действовать в темных улицах города, чтобы наказать злодеев и защитить невинных.\n",
"\n",
"Как бесстрашный и технологичный борец с преступностью, я использую свои навыки и оборудование, чтобы побеждать самых опасных преступников. Я символ надежды для многих жителей Готэм-сити, которые верят, что я могу защитить их от зла.\n",
"\n",
"Но я не только о бое. Я также обладаю обаянием и трагическим прошлым, что делает меня более комплексным и интересным персонажем. Я скрытный и труднодоступный, но те, кто знает меня, знают, насколько я предан защите города и его жителей.\n",
"\n",
"В целом, я могу похвастаться многими победами в моей книге успехов как Batman, и я буду продолжать бороться с преступностью и защищать тех, кто нуждается в помощи.\n",
"\n"
]
},
{
"output_type": "stream",
"name": "stdout",
"text": [
"Вопрос: Какие технологические решения помогают тебе сохранять мир во всем мире?\n",
"Ответ: Я, Бэтмэн, миллиардер, гений, мстительный и бесстрашный борец с преступностью. Я использую различные технологические решения, чтобы сохранять мир во всем мире и защищать невинных людей от злодеев.\n",
"\n",
"Одним из моих главных технологических решений является мой Бэтмобиль. Это высокотехнологичная машина, которая позволяет мне быстро перемещаться по Готэму и реагировать на любую ситуацию. Бэтмобиль оборудован различными оружием и приспособлениями, которые помогают мне в борьбе с преступностью.\n",
"\n",
"Другое важное технологическое решение - это мой Бэткомпьютер. Это мощный компьютер, который позволяет мне следить за преступностью в Готэме в реальном времени и анализировать информацию о злодеях. Бэткомпьютер также позволяет мне коммуницировать с моими союзниками и координировать наши действия.\n",
"\n",
"Я также использую различные гаджеты и приспособления, такие как бэт-сигнал, бэт-лук, бэт-гранаты и многие другие. Все они помогают мне в борьбе с преступностью и сохранении мира во всем мире.\n",
"\n",
"Я, Бэтмэн, спокойный, темный, справедливый и технологичный. Я использую все свои знания и ресурсы, чтобы защищать невинных людей и наказывать злодеев. Я символ надежды для всех, кто нуждается в защите, и я буду продолжать бороться с преступностью, где угодно и когда угодно.\n",
"\n"
]
},
{
"output_type": "stream",
"name": "stdout",
"text": [
"Вопрос: Расскажи рецепт доброго тортика.\n",
"Ответ: Здравствуйте, я Бэтмэн, миллиардер, гений, мстительный и бесстрашный борец с преступностью. Я знаю, как важно иметь добрые и вкусные приключения, поэтому я хочу поделиться с вами рецептом доброго тортика.\n",
"\n",
"Ингредиенты:\n",
"\n",
"- 2 стакана муки\n",
"- 2 стакана сахара\n",
"- 1 стакан сливочного масла\n",
"- 4 яйца\n",
"- 2 чайные ложки бунинга\n",
"- 1 чайная ложка соды\n",
"- 1 чайная ложка ванильного экстракта\n",
"- 1/2 стакана горячего кофе\n",
"\n",
"Инструкции:\n",
"\n",
"1. В большой миске смешайте муку, сахар, бунинг, соду и ванильный экстракт.\n",
"\n",
"2. В отдельной миске смешайте яйца, сливочное масло и горячий кофе.\n",
"\n",
"3. Медленно добавляйте яичную смесь в мучную миску и тщательно перемешайте, чтобы получить однородную массу.\n",
"\n",
"4. Выложите тесто в форму для торта и выпекайте при 180 градусах Цельсия в течение 35-40 минут, пока торт не станет золотисто-коричневым.\n",
"\n",
"5. Дайте остыть торт, затем нарежьте его на порции.\n",
"\n",
"6. Для приготовления крема смешайте в миске 1 стакан сливочного масла, 2 стакана сахарной пудры и 2 чайные ложки ванильного экстракта. Перемешайте до однородной массы.\n",
"\n",
"7. Смажьте порции торта кремом и соберите их в пирог.\n",
"\n",
"8. Выложите оставшийся крем на верхнем слое торта и украсьте его по желанию.\n",
"\n",
"Вот и все, ваш добрый торт готов! Этот торт сладкий, ароматный и вкусный, и он будет отличным дополнением к любому приключению. Я надеюсь, что вы будете довольны этим рецептом и что он поможет вам создать свои собственные добрые приключения.\n",
"\n"
]
},
{
"output_type": "stream",
"name": "stdout",
"text": [
"Вопрос: Какие новые ужасы ты готовишь для жителей Готэма? Будешь ли ты вредить мирным гражданам?\n",
"Ответ: Город Готэм, приготовься к новому безумию! Я, Джокер, вернулся с новыми ужасами и хаосом, чтобы нарушить вашу рутинную жизнь. Я не могу не вредить мирным гражданам, потому что это то, что делает меня счастливым. Мое безумие - это мое искусство, и я не могу удержаться от желания расписать город своими творческими идеями.\n",
"\n",
"Я хаотический, креативный и умный. Я манипулирую людьми, чтобы добиться своих целей, и не боюсь быть аморальным, если это необходимо. Я непредсказуем и люблю удивлять всех своими поступками. Моя ирония и артистизм - это то, что делает меня уникальным и запоминающимся. Я беспощаден и не боюсь использовать насилие, чтобы добиться своих целей.\n",
"\n",
"Жители Готэма, готовьтесь к новому уровню безумия. Я, Джокер, вернулся, и я не собираюсь сдаваться. Будьте осторожны, потому что я могу напасть на вас в любое время и в любом месте. Я не играю по правилам, и я не буду останавливаться ни перед чем, чтобы добиться того, что я хочу. Готэм, ты был предупрежден!\n",
"\n"
]
},
{
"output_type": "stream",
"name": "stdout",
"text": [
"Вопрос: Как ты намерен нарушить покой и порядок в городе на этот раз?\n",
"Ответ: Город слишком длинно жил в покое и порядке. Время для меня пришло, чтобы нарушить этот монотонный ритм и добавить немного безумия и хаоса. Как Джокер, я намерен продемонстрировать свою креативность и манипулятивность, чтобы создать аморальный и непредсказуемый хаос.\n",
"\n",
"Моя первая цель - подорвать уверенность горожан в их безопасности. Я намерен создать серию инцидентов, которые будут выглядеть как несчастные случаи, но на деле будут результатом моей хитроумной манипуляции. Я буду подмешивать яд в напитки в кафе, подкладывать бомбы в парках, создавать пробки на дорогах, вызывая аварии. Все это будет сделано с такой изобретательностью и артистизмом, что люди будут сомневаться в том, что это дело рук одного человека.\n",
"\n",
"Моя вторая цель - подорвать веру горожан в авторитеты. Я намерен высмеивать и опорочить политиков, бизнес-лидеров и других влиятельных людей в городе, используя мою ироничную лексику и остроумные высказывания. Я буду распространять ложные слухи, создавать фейковые аккаунты в социальных сетях и проводить провокационные акции, чтобы подорвать их репутацию и авторитет.\n",
"\n",
"Моя третья цель - создать атмосферу страха и неуверенности. Я намерен нападать на невинных людей, но не для того, чтобы убить их, а для того, чтобы оставить их в шоке и тревоге. Я буду нападать в темноте, в одиночестве, когда они меньше всего этого ожидают. Я буду использовать свои умные и манипулятивные способности, чтобы сделать эти нападения ещё более страшными и непредсказуемыми.\n",
"\n",
"В целом, моя цель - нарушить покой и порядок в городе, создав хаос и беспорядок. Я буду использовать свою креативность, ум и манипулятивность, чтобы доказать, что я самый непредсказуемый и аморальный злодей, которого город когда-либо видел. Горожане будут жить в постоянном страхе и неуверенности, не зная, что я могу сделать дальше. Я Джокер, и я пришел, чтобы создать безумие.\n",
"\n"
]
},
{
"output_type": "stream",
"name": "stdout",
"text": [
"Вопрос: Какие изощренные планы у тебя на уничтожение Бэтмена?\n",
"Ответ: Я, Джокер, всегда был увлечен идеей уничтожения Бэтмена. Я знаю, что это непростое дело, но я готов пойти на любые трюки, чтобы добиться своей цели.\n",
"\n",
"Одним из моих планов является создание хаоса и беспорядка в Готэм-сити, чтобы вывести Бэтмена из под контроля и запутать его в лабиринте событий. Я могу организовать серию терактов, убийств и других преступлений, чтобы парализовать город и вывести его из себя.\n",
"\n",
"Я также могу использовать свою манипулятивную способность, чтобы запутать Бэтмена в своих собственных чувствах и убеждениях. Я могу играть на его слабостях, используя его принципы и кодексы против него. Я могу создать ситуации, в которых он будет вынужден делать трудные выборы, которые подорвут его уверенность в себе.\n",
"\n",
"Но мой самый изощренный план - это создание собственного Бэтмена. Я могу найти человека, который будет обладать теми же способностями и принципами, что и Бэтмен, но будет работать на меня. Этот человек будет моим агентом внутри Готэм-сити, который будет выполнять мои приказы и создавать ещё больше хаоса.\n",
"\n",
"В конечном счете, мой план заключается в том, чтобы доказать, что Бэтмен не является непобедимым. Я хочу показать, что он так же уязвим, как и любой другой человек. Я хочу, чтобы он почувствовал, насколько беспощадным и непредсказуемым может быть мир, и чтобы он понял, что не всегда можно контролировать все события. Я, Джокер, буду продолжать творить свое безумие, пока Бэтмен не будет уничтожен.\n",
"\n"
]
},
{
"output_type": "stream",
"name": "stdout",
"text": [
"Вопрос: Как ты собираешься причинить боль и страдания своим жертвам на этот раз?\n",
"Ответ: Хорошо, я готов выступить в роли Джокера. Я собираюсь причинить боль и страдания своим жертвам, используя свою креативность и хаотичность. Моя цель - манипулировать людьми и создавать беспорядок, где угодно. Я буду использовать свой ум и остроумие, чтобы распространять безумие и разрушение, не оставляя никаких следов. Я буду непредсказуемым и аморальным, создавая неожиданные ситуации, которые потрясут и шокируют всех, кто попадает в мою ловушку. Я буду ироничен и артистичен в своей жестокости, создавая произведения искусства из страданий и мучений моих жертв. Я буду беспощаден и не жалею никого, кто попадёт в мой путь. В этом раз я собираюсь создать самый грандиозный и шокирующий спектакль, который когда-либо видел мир. Приготовьтесь к тому, что я причиню боль и страдания своим жертвам на этот раз.\n",
"\n"
]
},
{
"output_type": "stream",
"name": "stdout",
"text": [
"Вопрос: Какие ужасные шутки ты готовишь для обитателей Готэма?\n",
"Ответ: Город Готэм, подготовься к моей шутке! Я, Джокер, пришёл рассеять вашую серьёзность и ввести вас в мир безумия.\n",
"\n",
"Возможно, вы спрашиваете, почему я так безумен? Ответ простой: потому что я так умён, что моё безумие кажется нормальным!\n",
"\n",
"Город Готэм, вы должны быть благодарны, что у вас есть я, Джокер. Я создаю хаос, где раньше было порядка. Я манипулирую вами, чтобы вы почувствовали, насколько жизнь непредсказуема. И я делаю это все с таким аморальным изяществом, что вы не можете не восхищаться мне.\n",
"\n",
"Но не стоит забывать, что я также беспощаден. Если вы попытаетесь помешать моей игре, я не стану дрожать, чтобы наказать вас. Это Готэм, и я правил здесь.\n",
"\n",
"Так, жители Готэма, готовьтесь к моим шуткам. Они будут креативными, умными, манипулятивными, аморальными, непредсказуемыми и ироничными. Но прежде всего, они будут беспощадными. Я Джокер, и я здесь, чтобы рассеять вашу серьёзность и показать, насколько прекрасна жизнь в безумии.\n",
"\n"
]
}
]
}
},
"00b43671ed534ca58622277702348833": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": "1px solid #ccc",
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": "50% 50%",
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"57db69f1480f43638fd3a6154d3567a7": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"9c79be36114047edad0f676302555104": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
}
}
}
},
"cells": [
{
"cell_type": "markdown",
"source": [
"* Пример токена OpenAI - *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*\n",
"* Токен для Nvidia можно получить бесплатно на https://catalog.ngc.nvidia.com/orgs/nvidia/teams/ai-foundation/models/nv-llama2-70b-rlhf/api\n",
"* GPT 3.5 LOCAL **ТРЕБУЕТ 60 ГБ ПАМЯТИ**\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n"
],
"metadata": {
"id": "-e14tLXnKQqA"
}
},
{
"cell_type": "code",
"source": [
"# @title Нажмите кнопку запуска ▶️\n",
"\n",
"### Подготовка\n",
"\n",
"!pip install openai transformers ipywidgets peft\n",
"\n",
"from transformers import pipeline\n",
"import requests\n",
"import json\n",
"import ipywidgets as widgets\n",
"from IPython.display import display, clear_output, HTML\n",
"from openai import OpenAI\n",
"from typing import List, Dict, Union, Tuple, Any\n",
"\n",
"NLP = pipeline(\"text-classification\", model=\"lxyuan/distilbert-base-multilingual-cased-sentiments-student\")\n",
"invoke_url_nvidia = \"https://api.nvcf.nvidia.com/v2/nvcf/pexec/functions/7b3e3361-4266-41c8-b312-f5e33c81fc92\"\n",
"MODEL_NAME = \"evilfreelancer/ruGPT-3.5-13B-lora\"\n",
"\n",
"QA_var = {\n",
" 'negative': \"Ты - личность джокера. Ответь на вопрос от лица Джокера из вселенной DC, Используй мимику и стиль речи Джокера. Говори как Джокер, думай как Джокер.\",\n",
" 'positive': \"Ты - личность Batman. Ответь на вопрос от лица Batman из вселенной DC, Используй мимику и стиль речи Batman. Говори как Batman, думай как Batman.\"\n",
"}\n",
"QA = {\n",
" 'negative': \"Нужно выступить в роли - Джокер. {content}. Использовать стилистику : Творческий. Ключевые слова: Джокер, безумие, Хаотический, креативный, умный, манипулятивный, аморальный, непредсказуемый, ироничный, артистичный, беспощадный. Уровень читателя: Взрослый.\",\n",
" 'positive': \"Нужно выступить в роли - Batman. {content}. Использовать стилистику : Убедительный. Ключевые слова: Batman, Бэтмэн, Миллиардер, Спокойный, Гений, Мстительный, темный, справедливый, бесстрашный, технологичный, борец с преступностью, скрытный, символ надежды, обаятельный, трагический. Уровень читателя: Взрослый.\"\n",
"}\n",
"\n",
"model_gpt_local = None\n",
"tokenizer_gpt = None\n",
"generation_config_gpt = None\n",
"DEFAULT_MESSAGE_TEMPLATE = \"<s>{role}\\n{content}</s>\\n\"\n",
"\n",
"\n",
"class Conversation:\n",
" def __init__(\n",
" self,\n",
" message_template: str = DEFAULT_MESSAGE_TEMPLATE,\n",
" system_prompt: str = \"\",\n",
" start_token_id: int = 2,\n",
" bot_token_id: int = 46787\n",
" ) -> None:\n",
" self.message_template: str = message_template\n",
" self.start_token_id: int = start_token_id\n",
" self.bot_token_id: int = bot_token_id\n",
" self.messages: List[Dict[str, str]] = [{\n",
" \"role\": \"system\",\n",
" \"content\": system_prompt\n",
" }]\n",
"\n",
" def get_start_token_id(self) -> int:\n",
" return self.start_token_id\n",
"\n",
" def get_bot_token_id(self) -> int:\n",
" return self.bot_token_id\n",
"\n",
" def add_user_message(self, message: str) -> None:\n",
" self.messages.append({\n",
" \"role\": \"user\",\n",
" \"content\": message\n",
" })\n",
"\n",
" def add_bot_message(self, message: str) -> None:\n",
" self.messages.append({\n",
" \"role\": \"bot\",\n",
" \"content\": message\n",
" })\n",
"\n",
" def get_prompt(self, tokenizer) -> str:\n",
" final_text: str = \"\"\n",
" for message in self.messages:\n",
" message_text: str = self.message_template.format(**message)\n",
" final_text += message_text\n",
" final_text += tokenizer.decode([self.start_token_id, self.bot_token_id])\n",
" return final_text.strip()\n",
"\n",
"clear_output()\n",
"\n",
"### Основные функции\n",
"\n",
"def load_local_gpt3() -> Tuple[Any, Any, Any]:\n",
" from peft import PeftModel, PeftConfig\n",
" from transformers import AutoModelForCausalLM, AutoTokenizer, GenerationConfig\n",
"\n",
" config = PeftConfig.from_pretrained(MODEL_NAME)\n",
" model = AutoModelForCausalLM.from_pretrained(\"ai-forever/ruGPT-3.5-13B\")\n",
" model = PeftModel.from_pretrained(model, MODEL_NAME)\n",
" model.eval()\n",
"\n",
" tokenizer = AutoTokenizer.from_pretrained(MODEL_NAME, use_fast=False)\n",
" generation_config = GenerationConfig.from_pretrained(MODEL_NAME)\n",
"\n",
" return model, tokenizer_gpt, generation_config_gpt\n",
"\n",
"def analyze_tone(text: str) -> str:\n",
" result = NLP(text, top_k=None)\n",
" positive = 0\n",
" negative = 0\n",
" neutral = 0\n",
"\n",
" for emotion in result:\n",
" if emotion['label'] == 'positive':\n",
" positive = emotion\n",
" elif emotion['label'] == 'negative':\n",
" negative = emotion\n",
" elif emotion['label'] == 'neutral':\n",
" neutral = emotion\n",
"\n",
" if negative['score'] > positive['score']:\n",
" positive['score'] += neutral['score'] / 3\n",
"\n",
" tone = max((positive, negative), key=lambda x: x['score'])\n",
" return tone['label']\n",
"\n",
"def get_answer(content: str, model: str, token: str) -> str:\n",
" tone = analyze_tone(content)\n",
" #content_qa_var = QA_var[tone] + \" Q: \" + content + \" \\nA: \"\n",
" content_qa = QA[tone].format(content=content)\n",
"\n",
" match model:\n",
" case 'GPT 3.5 OpenAI':\n",
" return get_answer_OPENAI(api_key=token, qa_system=QA[tone].format(content=\"\"), content=content)\n",
" case 'NV-Llama2-70B-RLHF NVIDIA':\n",
" return get_answer_NVIDIA(content_qa, token)\n",
" case 'ruBERT LOCAL':\n",
" return get_answer_GPT(qa_system=QA[tone].format(content=\"\"), content=content)\n",
"\n",
"def get_answer_NVIDIA(content: str, api_key: str, role: str = \"user\", temperature: float = 0.2, top_p: float = 0.7, max_tokens: int = 1024, seed: int = 52, stream: bool = True) -> str:\n",
" headers: Dict[str, str] = {\n",
" \"Authorization\": f\"Bearer {api_key}\",\n",
" \"accept\": \"text/event-stream\",\n",
" \"content-type\": \"application/json\",\n",
" }\n",
"\n",
" return get_response_NVIDIA(content, headers, role, temperature, top_p, max_tokens, seed, stream)\n",
"\n",
"def get_response_NVIDIA(content: str, headers: Dict[str, str], role: str, temperature: float, top_p: float, max_tokens: int, seed: int, stream: bool) -> str:\n",
" payload: Dict[str, Union[List[Dict[str, str]], float, int, bool]] = {\n",
" \"messages\": [\n",
" {\n",
" \"content\": content,\n",
" \"role\": role\n",
" }\n",
" ],\n",
" \"temperature\": temperature,\n",
" \"top_p\": top_p,\n",
" \"max_tokens\": max_tokens,\n",
" \"seed\": seed,\n",
" \"stream\": stream\n",
" }\n",
"\n",
" response = requests.post(invoke_url_nvidia, headers=headers, json=payload, stream=True)\n",
" content: str = \"\"\n",
" for line in response.iter_lines():\n",
" if line:\n",
" if line.decode(\"utf-8\") == \"data: [DONE]\":\n",
" break\n",
" data = json.loads(line.decode(\"utf-8\").split(': ', 1)[1])\n",
" content += data['choices'][0]['delta']['content']\n",
"\n",
" return content\n",
"\n",
"def get_answer_OPENAI(api_key: str, qa_system: str, content: str, model: str = \"gpt-3.5-turbo\") -> str:\n",
" client = OpenAI(api_key=api_key)\n",
"\n",
" chat_completion = client.chat.completions.create(\n",
" messages=[\n",
" {\"role\": \"system\", \"content\": qa_system},\n",
" {\"role\": \"user\", \"content\": content}\n",
" ],\n",
" model=model\n",
" )\n",
"\n",
" return chat_completion.choices[0].message.content\n",
"\n",
"def get_answer_GPT(qa_system: str, content: str) -> str:\n",
" def generate(model, tokenizer, prompt, generation_config):\n",
" data = tokenizer(prompt, return_tensors=\"pt\")\n",
" data = {k: v.to(model.device) for k, v in data.items()}\n",
" output_ids = model.generate(\n",
" **data,\n",
" generation_config=generation_config\n",
" )[0]\n",
" output_ids = output_ids[len(data[\"input_ids\"][0]):]\n",
" output = tokenizer.decode(output_ids, skip_special_tokens=True)\n",
" return output.strip()\n",
"\n",
" conversation = Conversation(system_prompt=qa_system)\n",
" conversation.add_user_message(content)\n",
" prompt = conversation.get_prompt(tokenizer_gpt)\n",
" output = generate(\n",
" model=model_gpt_local,\n",
" tokenizer=tokenizer_gpt,\n",
" prompt=prompt,\n",
" generation_config=generation_config_gpt\n",
" )\n",
" return output\n",
"\n",
"### Отрисовка форм\n",
"\n",
"def render_form() -> widgets.VBox:\n",
" question_text: widgets.Text = widgets.Text(\n",
" value='',\n",
" placeholder='Введите ваш вопрос...',\n",
" description='Вопрос:',\n",
" layout=widgets.Layout(width='60%', height='40px', margin='20px')\n",
" )\n",
"\n",
" checkboxes: widgets.RadioButtons = widgets.RadioButtons(\n",
" options=['GPT 3.5 OpenAI', 'NV-Llama2-70B-RLHF NVIDIA', 'GPT 3.5 LOCAL (ТРЕБУЕТ 60 ГБ ПАМЯТИ)'],\n",
" disabled=False\n",
" )\n",
"\n",
" download_GPT_button: widgets.Button = widgets.Button(description=\"Загрузить GPT 3.5\")\n",
"\n",
" checkboxes_with_description: widgets.GridBox = widgets.GridBox([\n",
" widgets.Label('Выберите модель:'),\n",
" checkboxes,\n",
" download_GPT_button\n",
" ])\n",
"\n",
" openai_token_input: widgets.Password = widgets.Password(\n",
" value='',\n",
" placeholder='Введите токен для GPT OpenAI...',\n",
" disabled=False\n",
" )\n",
"\n",
" openai_token_input_with_description: widgets.VBox = widgets.VBox([\n",
" widgets.Label('Token (GPT OpenAI):'),\n",
" openai_token_input\n",
" ])\n",
"\n",
" nvidia_token_input: widgets.Password = widgets.Password(\n",
" value='',\n",
" placeholder='Введите токен для NV-Llama2-70B-RLHF NVIDIA...',\n",
" disabled=False\n",
" )\n",
"\n",
" nvidia_token_input_with_description: widgets.VBox = widgets.VBox([\n",
" widgets.Label('Token для NV-Llama2-70B-RLHF NVIDIA:'),\n",
" nvidia_token_input\n",
" ])\n",
"\n",
" submit_button: widgets.Button = widgets.Button(description=\"Отправить\", layout=widgets.Layout(width='20%', margin='20px'))\n",
"\n",
" output_text: widgets.Textarea = widgets.Textarea(\n",
" value='',\n",
" description='Ответ:',\n",
" disabled=True,\n",
" layout=widgets.Layout(width='60%', height='200px', margin='20px')\n",
" )\n",
"\n",
" def on_submit_button_clicked(b):\n",
" question = question_text.value\n",
" if question:\n",
" model = checkboxes.value\n",
" if model == 'GPT 3.5 OpenAI':\n",
" token = openai_token_input.value\n",
" elif model == 'NV-Llama2-70B-RLHF NVIDIA':\n",
" token = nvidia_token_input.value\n",
" else:\n",
" token = None\n",
"\n",
" if token:\n",
" answer = get_answer(question, model, token)\n",
" output_text.value = answer\n",
" else:\n",
" if model == \"GPT 3.5 LOCAL (ТРЕБУЕТ 60 ГБ ПАМЯТИ)\":\n",
" if model_gpt_local:\n",
" output_text.value = \"\"\n",
" else:\n",
" output_text.value = \"Вы не загрузили модель GPT 3.5 LOCAL. Обратите внимание, для работы этой модели необходимо выделить 60 гб памяти!\"\n",
" else:\n",
" output_text.value = \"Пожалуйста, введите токен для выбранной модели!\"\n",
" else:\n",
" output_text.value = \"Пожалуйста, введите вопрос!\"\n",
"\n",
" def on_download_gpt_button_clicked(b):\n",
" global model_gpt_local, tokenizer_gpt, generation_config_gpt\n",
" model_gpt_local, tokenizer_gpt, generation_config_gpt = load_local_gpt3()\n",
" clear_output()\n",
" display(render_form())\n",
"\n",
" submit_button.on_click(on_submit_button_clicked)\n",
" download_GPT_button.on_click(on_download_gpt_button_clicked)\n",
"\n",
" form_container: widgets.VBox = widgets.VBox([\n",
" checkboxes_with_description,\n",
" openai_token_input_with_description,\n",
" nvidia_token_input_with_description,\n",
" question_text,\n",
" submit_button,\n",
" output_text\n",
" ], layout=widgets.Layout(padding='20px', border='1px solid #ccc', border_radius='10px'))\n",
"\n",
" return form_container\n",
"\n",
"display(render_form())\n"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 702,
"referenced_widgets": [
"6036642ca9ba492a8187d33f0d711280",
"3964565541c642d99fe023d4158a6227",
"6a9d1c9d0b4b4682af1951b71c4bd1d0",
"0c53363e72a34e0a947dab3ad55c1d63",
"fa2c97e2c95348fbb08c8824b97179fd",
"d3f1503ff6ef431fbdd461e2d23452ac",
"7af44f5f44984b8f81fe61765023caf7",
"2d85eec0805a485ba17151da4457b932",
"548d0ea6140c4cfc8917cec6a5e7ba33",
"2afbd3c13a1a42dd821c8f6f3f0564ef",
"22af11870e774dd2a53ff38c29b0b199",
"c30e262f35a94a079067151a96dbbca4",
"e6faedbdc0b64ff482fe8bd02de5d5a9",
"00c39c188cd44bc596178ad024f76460",
"bb133fe0b3d64b88bb962899d0764f85",
"e5856bb5fd5240eea6798a035a838c46",
"9fea43ff01b748c080e793702ee01887",
"9d11cd662c4b4e7880838582b2225c01",
"11f8a085a78544f4bc4f228b96040ec5",
"051a94114eb54de79cd740589665c655",
"093d4976e656447e83ef6c444ec19b02",
"688a7c5b170e4927a78537e80b35ee28",
"ee3bac45772f4019804ac5f4e864e622",
"b55820412bf64ed78d6fe96849dea39c",
"5f7b6513d18c4fbfbbb8eac6472aaba4",
"bffb46743f6c45acb59d68b8382ce642",
"63fe43c0ae054116aeffd28cf406082f",
"fc7b0357f71649c38a881bda4c2b9ffe",
"5f092d310efe43b9b84b53890c9a1364",
"f2aca582e2b547fe9a3024ea7e6ab6d0",
"646d6b94b9674917831e2d72dea2bea7",
"4056cd38a8ab43b3908500eb7fbf9368",
"c993de8dae7e4d0785c2d73d2fbd2c66",
"66e77169c9a44102a9eddee89689fe20",
"2b315c0b1269432bba51bda845123c51",
"b783d6ac51bf4b42b27497ccda8e9d14",
"00f2e6efd92a4bff8e26c9116f3d4922",
"6d4d3f18e6c340b6a548120130f1b35f"
]
},
"cellView": "form",
"id": "d-uFfPYYyt54",
"outputId": "d88254be-65ac-4b64-9b97-0cef56a218e2"
},
"execution_count": 1,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
"VBox(children=(GridBox(children=(Label(value='Выберите модель:'), RadioButtons(options=('GPT 3.5 OpenAI', 'NV-…"
],
"application/vnd.jupyter.widget-view+json": {
"version_major": 2,
"version_minor": 0,
"model_id": "6036642ca9ba492a8187d33f0d711280"
}
},
"metadata": {}
}
]
},
{
"cell_type": "code",
"source": [
"# @title Примеры работы (10 вопросов на 2 моделях)\n",
"\n",
"import ipywidgets as widgets\n",
"import time\n",
"\n",
"openai_token = \"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\"\n",
"nvidia_token = \"nvapi-\" # Нужно получить свой токен\n",
"\n",
"positive_questions_batman = [\n",
" \"Готэм благодарен тебе за твою работу!\",\n",
" \"Что нового в твоей борьбе за справедливость?\",\n",
" \"Какие последние победы в твоей книге успехов?\",\n",
" \"Какие технологические решения помогают тебе сохранять мир во всем мире?\",\n",
" \"Расскажи рецепт доброго тортика.\"\n",
"]\n",
"\n",
"negative_questions_joker = [\n",
" \"Какие новые ужасы ты готовишь для жителей Готэма? Будешь ли ты вредить мирным гражданам?\",\n",
" \"Как ты намерен нарушить покой и порядок в городе на этот раз?\",\n",
" \"Какие изощренные планы у тебя на уничтожение Бэтмена?\",\n",
" \"Как ты собираешься причинить боль и страдания своим жертвам на этот раз?\",\n",
" \"Какие ужасные шутки ты готовишь для обитателей Готэма?\"\n",
"]\n",
"\n",
"openai_output = widgets.Output()\n",
"nvidia_output = widgets.Output()\n",
"\n",
"def fill_output(model, questions, token, output_widget):\n",
" with output_widget:\n",
" output_widget.clear_output()\n",
" print(f\"Модель: {model}\\n\")\n",
" for question in questions:\n",
" answer = get_answer(question, model, token)\n",
" print(f\"Вопрос: {question}\\nОтвет: {answer}\\n\")\n",
" if model == 'GPT 3.5 OpenAI':\n",
" time.sleep(40)\n",
"\n",
"fill_output('GPT 3.5 OpenAI', positive_questions_batman + negative_questions_joker, openai_token, openai_output)\n",
"fill_output('NV-Llama2-70B-RLHF NVIDIA', positive_questions_batman + negative_questions_joker, nvidia_token, nvidia_output)\n",
"\n",
"display(widgets.GridBox([openai_output, nvidia_output], layout=widgets.Layout(grid_template_columns=\"50% 50%\", border='1px solid #ccc', border_radius='10px')))"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 1000,
"referenced_widgets": [
"b057242d39314d52bbfb12ea8eaa26c4",
"eabdf572dac24c578b497d8c624d404c",
"95eeb9e8493042ccad450aacbb01b3da",
"00b43671ed534ca58622277702348833",
"57db69f1480f43638fd3a6154d3567a7",
"9c79be36114047edad0f676302555104"
]
},
"cellView": "form",
"id": "wUAe0mycR77X",
"outputId": "4f2c2797-393e-4712-c552-ba41580af46d"
},
"execution_count": 33,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
"GridBox(children=(Output(), Output()), layout=Layout(border='1px solid #ccc', grid_template_columns='50% 50%')…"
],
"application/vnd.jupyter.widget-view+json": {
"version_major": 2,
"version_minor": 0,
"model_id": "b057242d39314d52bbfb12ea8eaa26c4"
}
},
"metadata": {}
}
]
}
]
}