import 'package:langchain_google/langchain_google.dart';
import 'package:langchain/langchain.dart';
class OhosAiConsultant {
late ChatGoogleGenerativeAI _chatModel;
// 1. 初始化鸿蒙智能内核
void initEngine(String apiKey) {
print("鸿蒙端:正在建立与 Google Gemini 的量化通讯通道...");
_chatModel = ChatGoogleGenerativeAI(
apiKey: apiKey,
defaultOptions: const ChatGoogleGenerativeAIOptions(
model: 'gemini-1.5-pro',
temperature: 0.7,
),
);
}
// 2. 异步流式对话实现
Future<void> askGemini(String userQuery) async {
print("鸿蒙提示:正在向云端智慧中枢发起推理请求...");
final prompt = PromptValue.string(userQuery);
// 使用 Stream 模式获取即时反馈
final resultStream = _chatModel.stream(prompt);
await for (final chatResult in resultStream) {
// 鸿蒙提示:在 UI 侧实现打字机效果
print("收到推理片段:${chatResult.output.content}");
}
}
}
import 'package:flutter/material.dart';
class AiNeuralDashboard extends StatelessWidget {
const AiNeuralDashboard({super.key});
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: const Color(0xFF030303),
body: Center(
child: Container(
width: 320,
padding: const EdgeInsets.all(28),
decoration: BoxDecoration(
color: const Color(0xFF1A1A1A),
borderRadius: BorderRadius.circular(24),
border: Border.all(color: Colors.blueAccent.withOpacity(0.4)),
boxShadow: [
BoxShadow(
color: Colors.blue.withOpacity(0.1),
blurRadius: 40,
)
],
),
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
const Icon(Icons.psychology_rounded, color: Colors.blueAccent, size: 54),
const SizedBox(height: 24),
const Text(
"GEMINI-LANGCHAIN CORE",
style: TextStyle(color: Colors.white, fontSize: 13, letterSpacing: 2),
),
const SizedBox(height: 48),
_buildAiStat("Model ID", "gemini-1.5-pro"),
_buildAiStat("Reasoning Speed", "35 tokens/s", isHighlight: true),
_buildAiStat("Agent Status", "AUTONOMOUS"),
const SizedBox(height: 48),
const LinearProgressIndicator(value: 0.99, color: Colors.blueAccent, backgroundColor: Colors.white10),
],
),
),
),
);
}
Widget _buildAiStat(String l, String v, {bool isHighlight = false}) {
return Padding(
padding: const EdgeInsets.symmetric(vertical: 8),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Text(l, style: const TextStyle(color: Colors.white24, fontSize: 10)),
Text(
v,
style: TextStyle(
color: isHighlight ? Colors.blueAccent : Colors.white70,
fontSize: 11,
fontWeight: FontWeight.bold,
),
),
],
),
);
}
}