Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
C
ChatGPT
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Labels
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Jobs
Commits
Open sidebar
关振斌
ChatGPT
Commits
6f1b8b9e
Commit
6f1b8b9e
authored
Jul 11, 2023
by
netyouli
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
添加描述中文翻译英文的功能
parent
b4412ef6
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
107 additions
and
14 deletions
+107
-14
lib/common/apis/news.dart
lib/common/apis/news.dart
+14
-1
lib/common/utils/http.dart
lib/common/utils/http.dart
+25
-8
lib/pages/ai-draw-image-result/controller.dart
lib/pages/ai-draw-image-result/controller.dart
+7
-5
lib/pages/ai-draw-image-result/model.dart
lib/pages/ai-draw-image-result/model.dart
+51
-0
lib/pages/ai-draw-image/controller.dart
lib/pages/ai-draw-image/controller.dart
+10
-0
No files found.
lib/common/apis/news.dart
View file @
6f1b8b9e
...
...
@@ -76,8 +76,21 @@ class NewsAPI {
return
MidJourneyModel
.
fromJson
(
response
);
}
// https://api.kertennet.com/live/translate?text=美女喜欢帅哥&to=en
// 'https://frozenland.cc/index.php/translate?query='
static
Future
<
TranslateModel
>
translate
(
String
content
)
async
{
final
url
=
'https://frozenland.cc/index.php/translate'
;
var
response
=
await
Dio
().
get
(
url
,
queryParameters:
{
'query'
:
content
}
);
return
TranslateModel
.
fromJson
(
response
.
data
);
}
// 融合图片
static
Future
<
MidJourneyModel
>
blendImageByMidJourney
(
List
<
String
>
urls
,
String
question
,
int
conversionId
)
async
{
static
Future
<
MidJourneyModel
>
blendImageByMidJourney
(
List
<
String
>
urls
)
async
{
var
response
=
await
HttpUtil
().
post
(
'/midJourney/createImageByBlend'
,
data:
{
// "conversionId": conversionId,
// "next": 0,
...
...
lib/common/utils/http.dart
View file @
6f1b8b9e
...
...
@@ -38,7 +38,7 @@ class HttpUtil {
connectTimeout:
10000
,
// 响应流上前后两次接受到数据的间隔,单位为毫秒。
receiveTimeout:
2
0000
,
receiveTimeout:
15
0000
,
// Http请求头.
headers:
{},
...
...
@@ -69,7 +69,18 @@ class HttpUtil {
dio
.
interceptors
.
add
(
InterceptorsWrapper
(
onRequest:
(
options
,
handler
)
{
String
token
=
UserStore
.
to
.
token
;
String
url
=
options
.
uri
.
toString
();
Logger
.
debugPrint
(
'Request
${options.method}
URL:
$url
'
);
if
(
options
.
data
!=
null
)
{
try
{
String
params
=
jsonEncode
(
options
.
data
);
Logger
.
debugPrint
(
'Request Params:
$params
'
);
}
catch
(
error
)
{
Logger
.
debugPrint
(
'Request Params:
${options.data}
'
);
}
}
else
{
Logger
.
debugPrint
(
'Request Params: null'
);
}
if
(
token
.
isNotEmpty
)
{
options
.
headers
[
'Authorization'
]
=
token
;
}
...
...
@@ -93,12 +104,24 @@ class HttpUtil {
},
onResponse:
(
response
,
handler
)
{
// Do something with response data
if
(
response
.
data
!=
null
)
{
try
{
String
resJson
=
jsonEncode
(
response
.
data
);
Logger
.
debugPrint
(
'Response:
$resJson
'
);
}
catch
(
e
)
{
Logger
.
debugPrint
(
'Response:
${response.data}
'
);
}
}
else
{
Logger
.
debugPrint
(
'Response: null'
);
}
return
handler
.
next
(
response
);
// continue
// 如果你想终止请求并触发一个错误,你可以 reject 一个`DioError`对象,如`handler.reject(error)`,
// 这样请求将被中止并触发异常,上层catchError会被调用。
},
onError:
(
DioError
e
,
handler
)
{
// Do something with response error
Logger
.
debugPrint
(
'Response error:
${e.response?.data}
'
);
Logger
.
debugPrint
(
'Response message:
${e.message}
'
);
Loading
.
dismiss
();
ErrorEntity
eInfo
=
createErrorEntity
(
e
);
onError
(
eInfo
);
...
...
@@ -218,7 +241,6 @@ class HttpUtil {
queryParameters:
params
,
options:
Options
(
responseType:
ResponseType
.
stream
),
);
print
(
"image Url:
$path
, statusCode =
${response.statusCode}
"
);
final
statusCode
=
response
.
statusCode
??
0
;
if
(
statusCode
>=
200
&&
statusCode
<
300
)
{
final
stream
=
await
(
response
.
data
as
ResponseBody
).
stream
.
toList
();
...
...
@@ -266,14 +288,12 @@ class HttpUtil {
if
(
authorization
!=
null
)
{
requestOptions
.
headers
!.
addAll
(
authorization
);
}
Logger
.
debugPrint
(
"request =
$SERVER_API_URL$path
"
);
var
response
=
await
dio
.
get
(
path
,
queryParameters:
queryParameters
,
options:
options
,
cancelToken:
cancelToken
,
);
Logger
.
debugPrint
(
"response =
${jsonEncode(response.data)}
"
);
return
response
.
data
;
}
...
...
@@ -290,8 +310,6 @@ class HttpUtil {
if
(
authorization
!=
null
)
{
requestOptions
.
headers
!.
addAll
(
authorization
);
}
Logger
.
debugPrint
(
"request =
$SERVER_API_URL$path
"
);
Logger
.
debugPrint
(
"params =
${jsonEncode(data)}
"
);
var
response
=
await
dio
.
post
(
path
,
data:
data
,
...
...
@@ -299,7 +317,6 @@ class HttpUtil {
options:
requestOptions
,
cancelToken:
cancelToken
,
);
Logger
.
debugPrint
(
"response =
${jsonEncode(response.data)}
"
);
return
response
.
data
;
}
...
...
lib/pages/ai-draw-image-result/controller.dart
View file @
6f1b8b9e
...
...
@@ -29,6 +29,7 @@ class AIDrawImageResultController extends GetxController {
var
s
=
""
;
var
styleName
=
""
.
obs
;
var
text
=
""
.
obs
;
var
enText
=
""
;
var
imageUrl
=
""
.
obs
;
var
progress
=
0
.
obs
;
var
showProgressView
=
false
.
obs
;
...
...
@@ -52,6 +53,7 @@ class AIDrawImageResultController extends GetxController {
opearter
=
arguments
[
"opearter"
];
conversionId
=
arguments
[
"conversionId"
];
text
.
value
=
arguments
[
"text"
]
??
""
;
enText
=
arguments
[
"enText"
]
??
""
;
ratio
=
arguments
[
"ratio"
];
s
=
arguments
[
"s"
];
styleName
.
value
=
arguments
[
"styleName"
];
...
...
@@ -139,12 +141,12 @@ class AIDrawImageResultController extends GetxController {
makeBlendImage
()
async
{
progress
.
value
=
0
;
final
question
=
'
$text
--ar
$ratio$s
'
;
Logger
.
debugPrint
(
"question =
$question
"
);
//
final question = '$text --ar $ratio$s';
//
Logger.debugPrint("question = $question");
EasyLoading
.
show
(
status:
"AI正在生成中..."
);
try
{
// state.isLoading = true;
final
res
=
await
NewsAPI
.
blendImageByMidJourney
(
imageUrls
,
"--ar
$ratio$s
"
,
conversionId
);
final
res
=
await
NewsAPI
.
blendImageByMidJourney
(
imageUrls
);
if
(
res
.
status
==
401
)
{
EasyLoading
.
showInfo
(
'您还未登录,请登录后体验功能。'
);
Get
.
toNamed
(
AppRoutes
.
SIGN_IN
);
...
...
@@ -169,7 +171,7 @@ class AIDrawImageResultController extends GetxController {
makeDrawImage
()
async
{
progress
.
value
=
0
;
final
question
=
'
$
t
ext
--ar
$ratio$s
'
;
final
question
=
'
$
enT
ext
--ar
$ratio$s
'
;
Logger
.
debugPrint
(
"question =
$question
"
);
EasyLoading
.
show
(
status:
"AI正在生成中..."
);
try
{
...
...
@@ -192,7 +194,7 @@ class AIDrawImageResultController extends GetxController {
// state.isLoading = false;
}
catch
(
e
)
{
// state.isLoading = false;
EasyLoading
.
dismiss
(
);
EasyLoading
.
showError
(
e
.
toString
()
);
}
}
...
...
lib/pages/ai-draw-image-result/model.dart
View file @
6f1b8b9e
...
...
@@ -90,4 +90,55 @@ class MidJourneyImageResponse {
data
[
'buttonMessageId'
]
=
this
.
buttonMessageId
;
return
data
;
}
}
class
TranslateModel
{
String
?
from
;
String
?
to
;
List
<
TransResult
>?
transResult
;
TranslateModel
({
this
.
from
,
this
.
to
,
this
.
transResult
});
TranslateModel
.
fromJson
(
Map
<
String
,
dynamic
>
json
)
{
from
=
json
[
'from'
];
to
=
json
[
'to'
];
if
(
json
[
'trans_result'
]
!=
null
)
{
transResult
=
[];
json
[
'trans_result'
].
forEach
((
v
)
{
transResult
?.
add
(
new
TransResult
.
fromJson
(
v
));
});
}
}
Map
<
String
,
dynamic
>
toJson
()
{
final
Map
<
String
,
dynamic
>
data
=
new
Map
<
String
,
dynamic
>();
data
[
'from'
]
=
this
.
from
;
data
[
'to'
]
=
this
.
to
;
if
(
this
.
transResult
!=
null
)
{
data
[
'trans_result'
]
=
this
.
transResult
?.
map
((
v
)
=>
v
.
toJson
()).
toList
();
}
return
data
;
}
}
class
TransResult
{
String
?
src
;
String
?
dst
;
TransResult
({
this
.
src
,
this
.
dst
});
TransResult
.
fromJson
(
Map
<
String
,
dynamic
>
json
)
{
src
=
json
[
'src'
];
dst
=
json
[
'dst'
];
}
Map
<
String
,
dynamic
>
toJson
()
{
final
Map
<
String
,
dynamic
>
data
=
new
Map
<
String
,
dynamic
>();
data
[
'src'
]
=
this
.
src
;
data
[
'dst'
]
=
this
.
dst
;
return
data
;
}
}
\ No newline at end of file
lib/pages/ai-draw-image/controller.dart
View file @
6f1b8b9e
...
...
@@ -147,6 +147,10 @@ class AIDrawImageController extends GetxController {
}
toImageMarkDrawImage
()
async
{
if
(
uploadImageUrls
.
length
<
2
||
uploadImageUrls
.
length
>
5
)
{
EasyLoading
.
showError
(
"请选择2-5张图片"
);
return
;
}
EasyLoading
.
show
(
status:
"加载中"
,
dismissOnTap:
false
,
...
...
@@ -176,6 +180,10 @@ class AIDrawImageController extends GetxController {
}
toTextMakeDrawImage
()
async
{
if
(
textController
.
text
.
isEmpty
)
{
EasyLoading
.
showInfo
(
'请输入生成图片的描述'
);
return
;
}
EasyLoading
.
show
(
status:
"加载中"
,
dismissOnTap:
false
,
...
...
@@ -185,6 +193,7 @@ class AIDrawImageController extends GetxController {
size:
30
,
));
Vibrate
.
feedback
(
FeedbackType
.
impact
);
final
transformModel
=
await
NewsAPI
.
translate
(
textController
.
text
);
final
conversionId
=
await
UserAPI
.
createConversion
();
EasyLoading
.
dismiss
();
if
(
conversionId
==
401
)
{
...
...
@@ -195,6 +204,7 @@ class AIDrawImageController extends GetxController {
arguments:
{
"opearter"
:
"textToImage"
,
"conversionId"
:
conversionId
,
"enText"
:
transformModel
.
transResult
?.
first
.
dst
??
textController
.
text
,
"text"
:
textController
.
text
,
"ratio"
:
ratio
.
value
,
"s"
:
s
,
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment