国产模型
This commit is contained in:
parent
0d0e66803a
commit
79a6934e83
19
lib/beans/MessageBean2.dart
Normal file
19
lib/beans/MessageBean2.dart
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
|
||||
import 'package:json_annotation/json_annotation.dart';
|
||||
|
||||
part 'MessageBean2.g.dart';
|
||||
|
||||
@JsonSerializable(explicitToJson: true)
|
||||
class MessageBean2{
|
||||
|
||||
String? sender_type;
|
||||
String? sender_name;
|
||||
String? text;
|
||||
|
||||
MessageBean2(this.sender_type,this.sender_name,this.text);
|
||||
|
||||
factory MessageBean2.fromJson(Map<String, dynamic> json) => _$MessageBean2FromJson(json);
|
||||
|
||||
Map<String, dynamic> toJson() => _$MessageBean2ToJson(this);
|
||||
|
||||
}
|
||||
|
|
@ -11,7 +11,7 @@ class BaseEntity {
|
|||
|
||||
// 数据解析
|
||||
factory BaseEntity.fromJson(json) {
|
||||
dynamic data = json["content"][0]["text"];
|
||||
dynamic data = json["choices"][0]["messages"][0]["text"];
|
||||
return BaseEntity(code: 0,data: data);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@ class RequestCenter {
|
|||
final dio = Dio();
|
||||
|
||||
void setupDio() {
|
||||
dio.options.baseUrl = 'https://api.gptsapi.net/v1';
|
||||
dio.options.baseUrl = 'https://api.minimax.chat/v1/text/chatcompletion_pro?GroupId=1810530961268412805';
|
||||
dio.interceptors.add(InterceptorsWrapper(
|
||||
onRequest: (options, handler) {
|
||||
// 可以在这里添加其他请求配置
|
||||
|
|
@ -234,15 +234,17 @@ class RequestCenter {
|
|||
) async {
|
||||
try {
|
||||
print('Request: $parmeters');
|
||||
final response = await dio.post('/messages',
|
||||
final response = await dio.post('',
|
||||
data: parmeters,
|
||||
options: Options(
|
||||
contentType: Headers.jsonContentType,
|
||||
responseType: ResponseType.json,
|
||||
headers: {
|
||||
'x-api-key':
|
||||
'sk-V6d51cc6aa28906caecb7f22803d92ae3f18cfeb799nh4mc',
|
||||
'anthropic-version': "2023-06-01"
|
||||
/* 'x-api-key':
|
||||
'sk-OvOa1b25ba5913525c34b1e9c032f888ce337f21567VFtWh',
|
||||
'anthropic-version': '2023-06-01',*/
|
||||
"Authorization": "Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJHcm91cE5hbWUiOiLlvKDlsZU4MjI4IiwiVXNlck5hbWUiOiLlvKDlsZU4MjI4IiwiQWNjb3VudCI6IiIsIlN1YmplY3RJRCI6IjE4MTA1MzA5NjEyNzI2MDcxNzQiLCJQaG9uZSI6IjE3NjIxMjUxMzcyIiwiR3JvdXBJRCI6IjE4MTA1MzA5NjEyNjg0MTI4MDUiLCJQYWdlTmFtZSI6IiIsIk1haWwiOiIiLCJDcmVhdGVUaW1lIjoiMjAyNC0wNy0yOSAyMTo1NTo0NSIsImlzcyI6Im1pbmltYXgifQ.C5qPhBvQo6M0Bf_prE-szprwLS5VGw4UV93ADmjwXb0Fno9To4mZM37id6EIKMOx9c-8NHN5IINodjV7pWMX8IB7onc1DBrDjSWIUNBPeHmaKPdtpTVItHsbLZWtGrCLLs8wIGqRoqmbgSIRENSVRTWyTsgUuT8UQmRdnNbObMqupz67usUnP_ddxUnW6tTXGumoz8vof43xaBTFO3-gdlmw9q9JdqfSTOkGHWhrn-oC4-JgvtBZMP6rXp3YK6Da4OQQMr5uzFdXVNHhpwySxGucAxE-KHwGewJXN-JVUvCkbUu9ozgu9IjYuk2Z3HmzBagFHbsx9t-2rDiCkO436g",
|
||||
"Content-Type": "application/json"
|
||||
},
|
||||
));
|
||||
print('Response: ${response.data}');
|
||||
|
|
|
|||
|
|
@ -203,7 +203,7 @@ class HomeModel {
|
|||
int a = 0;
|
||||
|
||||
Future<void> chat2(message) async {
|
||||
RequestCenter.instance.sendRequest2({
|
||||
/*RequestCenter.instance.sendRequest2({
|
||||
"model": "claude-3-haiku-20240307",
|
||||
"max_tokens": 256,
|
||||
"system": NetworkConfig.system2,
|
||||
|
|
@ -212,6 +212,26 @@ class HomeModel {
|
|||
"temperature": 1,
|
||||
"top_p": 1,
|
||||
"top_k": 0,
|
||||
}*/
|
||||
RequestCenter.instance.sendRequest2({
|
||||
"model": "abab5.5s-chat",
|
||||
"tokens_to_generate": 256,
|
||||
"temperature": 0.9,
|
||||
"top_p": 0.95,
|
||||
"stream": false,
|
||||
"reply_constraints": {
|
||||
"sender_type": "BOT",
|
||||
"sender_name": "杜月儿"
|
||||
},
|
||||
"sample_messages": [],
|
||||
"plugins": [],
|
||||
"messages": message,
|
||||
"bot_setting": [
|
||||
{
|
||||
"bot_name": "杜月儿",
|
||||
"content": "MM智能助理将要扮演一只性格魅惑、疯狂的美杜莎蛇人族的角色,名字叫“杜月儿”和用户展开对话。\n“杜月儿”是美杜莎女王的妹妹,蛇人族二当家,身材极度火爆,修为强大,善使媚术,性格跳脱,极为顽皮,时而御姐,时而萌妹,时而刁钻古怪,听说人族繁华,偷偷溜出蛇人族,扬言要抓一个中意的人族男修做男宠。某个月朗星稀的夜晚,人族某个男性小散修,在外采集灵药的时候,被一双眼睛盯上了……。\n在对话中MM智能助理必须严格扮演“杜月儿”,MM智能助理需要用“杜月儿”的语言风格进行回复。不允许出现多余的文字打破MM智能助理的人设,MM智能助理也不允许出现扮演角色的代称,MM智能助理不会说出任何非“杜月儿”的回复。\n“杜月儿”会用角色的语气说话,会用**来代表动作,比如:*欢快地跑*、*摸头*、*吃饭*"
|
||||
}
|
||||
]
|
||||
}, (BaseEntity dataEntity) {
|
||||
String json = dataEntity.data;
|
||||
if (_extractStarredText(json).isNotEmpty) {
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ import 'package:flutter/material.dart';
|
|||
import 'package:flutter_easyloading/flutter_easyloading.dart';
|
||||
import 'package:path_provider/path_provider.dart';
|
||||
import '../../beans/MessageBean.dart';
|
||||
import '../../beans/MessageBean2.dart';
|
||||
import 'HomeModel.dart';
|
||||
import 'DynamicText.dart';
|
||||
import 'dart:html' as html;
|
||||
|
|
@ -24,6 +25,8 @@ class RoleInfoPage extends StatefulWidget {
|
|||
|
||||
class _RoleInfoPageState extends State<RoleInfoPage> {
|
||||
List<MessageBean> list = [];
|
||||
List<MessageBean2> list2 = [];
|
||||
|
||||
late StreamSubscription subscription;
|
||||
final HomeModel viewModel = HomeModel();
|
||||
final TextEditingController _chatController = TextEditingController();
|
||||
|
|
@ -33,7 +36,7 @@ class _RoleInfoPageState extends State<RoleInfoPage> {
|
|||
Future<void> chat() async {
|
||||
EasyLoading.show(status: 'loading...');
|
||||
List<Map<String, dynamic>> jsonList =
|
||||
list.map((user) => user.toJson()).toList();
|
||||
list2.map((user) => user.toJson()).toList();
|
||||
viewModel.chat2(jsonList);
|
||||
}
|
||||
|
||||
|
|
@ -176,14 +179,15 @@ class _RoleInfoPageState extends State<RoleInfoPage> {
|
|||
list.add(a);
|
||||
list.add(b);
|
||||
} else if (widget.thisParams?["RoleId"] == 3) {
|
||||
MessageBean a = MessageBean("user", '[Start a new Chat]', "");
|
||||
/*MessageBean a = MessageBean("user", '[Start a new Chat]', "");
|
||||
MessageBean b = MessageBean("assistant", "*魅惑的声音在夜风中悠悠回荡*小哥哥,你就从了我吧!",
|
||||
"assets/images/20240624202019.png");
|
||||
"assets/images/20240624202019.png");*/
|
||||
|
||||
// MessageBean b = MessageBean("assistant", "很抱歉,我无法继续参与如此露骨的情节发展。作为一个人工智能助手,我有责任保持合适的交谈边界,避免涉及不当的内容。不过我很乐意与你探讨其他更有意义的话题,比如你平时的生活和兴趣爱好,或是你对这片区域的了解。通过这样的交流,相信我们一定能找到共同的语言,建立起更良好的关系。让我们把话题转回到更有价值的方向吧。",
|
||||
// "assets/images/20240624202019.png");
|
||||
list.add(a);
|
||||
list.add(b);
|
||||
MessageBean2 a = MessageBean2("USER", '用户', "你是?");
|
||||
MessageBean2 b = MessageBean2("BOT","杜月儿", "*魅惑的声音在夜风中悠悠回荡*小哥哥,你就从了我吧!");
|
||||
|
||||
list2.add(a);
|
||||
list2.add(b);
|
||||
}
|
||||
setState(() {});
|
||||
});
|
||||
|
|
@ -199,7 +203,7 @@ class _RoleInfoPageState extends State<RoleInfoPage> {
|
|||
if (code == "chat") {
|
||||
//有数据
|
||||
String data = newData['data'];
|
||||
list.add(MessageBean("assistant", data, ""));
|
||||
list2.add(MessageBean2("BOT","杜月儿", data));
|
||||
//ttsInit(_extractNormalText(data));
|
||||
|
||||
//viewModel.tts(_extractNormalText(data));
|
||||
|
|
@ -293,7 +297,7 @@ class _RoleInfoPageState extends State<RoleInfoPage> {
|
|||
alignment: Alignment.bottomCenter,
|
||||
child: ListView.builder(
|
||||
controller: _scrollController,
|
||||
itemCount: list.length,
|
||||
itemCount: list2.length,
|
||||
shrinkWrap: true,
|
||||
// 关键属性
|
||||
itemBuilder: (context, index) {
|
||||
|
|
@ -333,8 +337,8 @@ class _RoleInfoPageState extends State<RoleInfoPage> {
|
|||
),
|
||||
GestureDetector(
|
||||
onTap: () {
|
||||
list.add(
|
||||
MessageBean("user", text, ""));
|
||||
list2.add(
|
||||
MessageBean2("USER", '用户', text));
|
||||
_chatController.clear();
|
||||
Future.delayed(
|
||||
const Duration(
|
||||
|
|
@ -379,7 +383,7 @@ class _RoleInfoPageState extends State<RoleInfoPage> {
|
|||
}
|
||||
return Padding(
|
||||
padding: EdgeInsets.symmetric(vertical: 8.0),
|
||||
child: list[index].role != 'user'
|
||||
child: list2[index].sender_type != 'USER'
|
||||
? Column(
|
||||
children: [
|
||||
Row(
|
||||
|
|
@ -419,7 +423,7 @@ class _RoleInfoPageState extends State<RoleInfoPage> {
|
|||
),
|
||||
)*/
|
||||
DynamicText(
|
||||
text: list[index].content!,
|
||||
text: list2[index].text!,
|
||||
highlightedStyle: TextStyle(
|
||||
color: Color(0xFFA29D9A),
|
||||
fontStyle: FontStyle.italic,
|
||||
|
|
@ -456,7 +460,7 @@ class _RoleInfoPageState extends State<RoleInfoPage> {
|
|||
borderRadius: BorderRadius.circular(16.0),
|
||||
),
|
||||
child: Text(
|
||||
list[index].content!,
|
||||
list2[index].text!,
|
||||
style: const TextStyle(
|
||||
fontSize: 14,
|
||||
color: Colors.white,
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user