当前位置: 首页 > wzjs >正文

家具公司网页设计宁波优化seo

家具公司网页设计,宁波优化seo,企业信息系统开发,淘客网站佣金建设复制 ┌───────────────┐ ┌─────────────┐ │ 主界面UI │◄─────►│ 会话管理模块 │ └───────┬───────┘ └──────┬──────┘│ │▼ ▼ ┌─…
复制
┌───────────────┐       ┌─────────────┐
│   主界面UI    │◄─────►│ 会话管理模块 │
└───────┬───────┘       └──────┬──────┘│                      │▼                      ▼
┌───────────────┐       ┌─────────────┐
│ API通信模块   │       │ 文件存储模块 │
└───────┬───────┘       └───────┬─────┘│                       │▼                       ▼
┌───────────────────────────────┐
│       SiliconFlow API         │
└───────────────────────────────┘用户操作流程:
1. 新建会话 → 生成sessionID → 创建空todu文件
2. 输入问题 → 调用API → 解析响应 → 更新todu
3. 切换会话 → 加载对应todu文件 → 刷新界面
二、核心模块分工
1.1.界面交互模块
- 负责控件事件处理
- 管理界面状态刷新
- 提供用户输入验证
1.2.会话管理模块
- 维护会话列表和当前会话状态
- 处理会话切换时的数据加载/保存
- 生成唯一sessionID
1.3.API通信模块
- 构造符合规范的请求报文
- 处理API响应和错误码
- 结果解析和数据结构转换
1.4.文件存储模块
- 管理todu目录的文件存储
- 实现JSON格式的序列化/反序列化
- 文件变更监控和自动保存
三、主要类实现代码(精简版)
  1. 1.会话管理核心类
csharp复制
public class SessionManager
{private string _currentSessionId;private readonly string _workspacePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "todu");public void InitWorkspace(){if (!Directory.Exists(_workspacePath))Directory.CreateDirectory(_workspacePath);}public string CreateNewSession(){var sessionId = Guid.NewGuid().ToString("N");File.WriteAllText(GetSessionFilePath(sessionId), "[]");return sessionId;}public void SwitchSession(string sessionId){_currentSessionId = sessionId;if (!File.Exists(GetSessionFilePath(sessionId)))throw new FileNotFoundException("Session file missing");}public List<TodoItem> GetCurrentTodos(){return JsonConvert.DeserializeObject<List<TodoItem>>(File.ReadAllText(GetSessionFilePath(_currentSessionId)));}private string GetSessionFilePath(string sessionId) => Path.Combine(_workspacePath, $"{sessionId}.json");
}

2.API通信处理类

csharp复制
public class TodoApiClient
{private const string ApiEndpoint = "https://api.siliconflow.cn/v1/chat/completions";public async Task<List<TodoItem>> GenerateTodosAsync(string question){using var client = new HttpClient();client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", "[YOUR_API_KEY]");var request = new{model = "deepseek-ai/DeepSeek-V3",messages = new[] {new { role = "user", content = $"请根据以下问题生成规范的待办事项列表:{question}。按JSON数组格式返回" }},response_format = new { type = "json_object" }};var response = await client.PostAsync(ApiEndpoint, new StringContent(JsonConvert.SerializeObject(request), Encoding.UTF8, "application/json"));var responseObj = JObject.Parse(await response.Content.ReadAsStringAsync());return ParseTodoJson(responseObj["choices"][0]["message"]["content"].ToString());}private List<TodoItem> ParseTodoJson(string json){// 示例响应格式:{ "todos": [{...}] }return JObject.Parse(json)["todos"]?.Select(t => new TodoItem {Id = Guid.NewGuid(),Content = t["content"].ToString(),Created = DateTime.Now}).ToList() ?? new List<TodoItem>();}
}

3.文件存储服务

csharp复制
public class TodoFileManager
{private FileSystemWatcher _watcher;public void SetupFileWatcher(Action<string> onChange){_watcher = new FileSystemWatcher{Path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "todu"),Filter = "*.json",NotifyFilter = NotifyFilters.LastWrite};_watcher.Changed += (s, e) => onChange(e.Name.Replace(".json", ""));_watcher.EnableRaisingEvents = true;}public void SaveTodos(string sessionId, List<TodoItem> todos){var json = JsonConvert.SerializeObject(todos, Formatting.Indented);File.WriteAllText(GetFilePath(sessionId), json, Encoding.UTF8);}private string GetFilePath(string sessionId) => Path.Combine("todu", $"{sessionId}.json");
}

4.窗口界面关键代码(Windows Forms)

csharp复制
public partial class MainForm : Form
{private SessionManager _sessionManager = new SessionManager();private TodoApiClient _apiClient = new TodoApiClient();private BindingList<TodoItem> _currentTodos = new BindingList<TodoItem>();public MainForm(){InitializeComponent();_sessionManager.InitWorkspace();lstSessions.DisplayMember = "Key";lstSessions.ValueMember = "Value";todoListBox.DataSource = _currentTodos;todoListBox.DisplayMember = "Content";}// 新建会话按钮private void btnNewSession_Click(object sender, EventArgs e){var sessionId = _sessionManager.CreateNewSession();lstSessions.Items.Add(new KeyValuePair<string, string>($"会话 {lstSessions.Items.Count+1}", sessionId));}// 发送提问按钮private async void btnSend_Click(object sender, EventArgs e){var todos = await _apiClient.GenerateTodosAsync(txtInput.Text);_currentTodos.Clear();foreach(var item in todos)_currentTodos.Add(item);_sessionManager.SaveCurrentTodos(_currentTodos.ToList());}// 切换会话选择private void lstSessions_SelectedIndexChanged(object sender, EventArgs e){if(lstSessions.SelectedItem is KeyValuePair<string, string> selected){_sessionManager.SwitchSession(selected.Value);_currentTodos = new BindingList<TodoItem>(_sessionManager.GetCurrentTodos());todoListBox.DataSource = _currentTodos;}}
}

5.扩展功能建议

csharp复制
// 增加会话元数据存储
public class SessionMetadata
{public string SessionId { get; set; }public string Title { get; set; }public DateTime LastModified { get; set; }
}// 在SessionManager中添加
public void SaveSessionMetadata(SessionMetadata meta)
{var path = Path.Combine(_workspacePath, "_sessions.json");var list = File.Exists(path) ? JsonConvert.DeserializeObject<List<SessionMetadata>>(File.ReadAllText(path)) : new List<SessionMetadata>();if(list.Any(m => m.SessionId == meta.SessionId))list.RemoveAll(m => m.SessionId == meta.SessionId);list.Add(meta);File.WriteAllText(path, JsonConvert.SerializeObject(list));
}
TODO项状态管理扩展
csharp复制
public class TodoItem
{public Guid Id { get; set; }public string Content { get; set; }public bool IsCompleted { get; set; }public DateTime Created { get; set; }public DateTime? CompletedDate { get; set; }
}// 在界面中添加状态切换
private void todoListBox_MouseDoubleClick(object sender, MouseEventArgs e)
{if(todoListBox.SelectedItem is TodoItem item){item.IsCompleted = !item.IsCompleted;item.CompletedDate = item.IsCompleted ? DateTime.Now : null;_sessionManager.SaveCurrentTodos(_currentTodos.ToList());todoListBox.Refresh();}
}


文章转载自:

http://niy8scx9.qfbzj.cn
http://I3ZC4uBr.qfbzj.cn
http://WanmwXbY.qfbzj.cn
http://ufaOIUC2.qfbzj.cn
http://kXli0vCv.qfbzj.cn
http://RGg7EeSB.qfbzj.cn
http://JiXmmbl9.qfbzj.cn
http://ZeJwAiPG.qfbzj.cn
http://fuFVpEA0.qfbzj.cn
http://wlQw0tYk.qfbzj.cn
http://KVmcsnzU.qfbzj.cn
http://ukSEGslw.qfbzj.cn
http://NYPWiX1I.qfbzj.cn
http://2pSqNO9b.qfbzj.cn
http://tTOpkCUX.qfbzj.cn
http://8jf0o2u9.qfbzj.cn
http://GvxHq12z.qfbzj.cn
http://foOC5810.qfbzj.cn
http://n7EoQNvG.qfbzj.cn
http://v7NmaeZI.qfbzj.cn
http://z4a7vXYR.qfbzj.cn
http://LrBcXdnI.qfbzj.cn
http://Qu49PGyY.qfbzj.cn
http://CoP3E7WV.qfbzj.cn
http://nv9rO5nF.qfbzj.cn
http://P8QBFlgS.qfbzj.cn
http://UJoXJ7hG.qfbzj.cn
http://S9kpzjeC.qfbzj.cn
http://1aHmqmQR.qfbzj.cn
http://9vprYFmv.qfbzj.cn
http://www.dtcms.com/wzjs/631408.html

相关文章:

  • 艺术网站建设模板网站维护 北京
  • 购物网站seo网站建设什么软件
  • 自己做网站地址怎么查看网站的点击率
  • 网站图片展示方式有哪些logo设计公司 北京
  • 攻略网站的建设金属材料网站建设
  • 专门装修的网都有什么网网站网站建设洽谈
  • 设计感十足的网站福田庆三鞠婧祎
  • 做网站运营难吗网页游戏推荐排行
  • 国外主流媒体网站wordpress 页面添加图标
  • 做网站的s标的软件网页设计实例
  • 文章类网站程序宁波建设监理协会
  • wordpress 浮框河北seo基础入门教程
  • 网站网站做维护犯罪自助建站免费自助建站网站
  • 详情页模板哪个网站好做的阿里巴巴网站的放哪个科目
  • 深圳flash网站建设如何开发网站建设业务
  • 做微信用什么网站58网站建设58xiamen
  • 重庆市建设岗培中心网站密云做网站的
  • 行业网站系统中国交通建设官方网站
  • 做一家公司网站要注意哪些手机制作ppt哪种软件好
  • 微信自助建站系统c2c模式类型
  • 全国工商网站查询企业信息h5网页制作代码
  • 电影网站可以备案吗男女做暖暖视频网站
  • 湖南环达公路桥梁建设总公司网站网站建设推广小王熊掌号
  • 微信的官方网站怎么做wordpress最近更新文章插件
  • qq刷会员建设网站电商网站建设是做什么的
  • 外贸网站建设需要注意什么广州建网站技术
  • 松江网站建设培训费用徐州建站推广
  • 问卷调查网站赚钱怎么把店地址申请百度地图
  • 自助建站申请书托管网站
  • 广播电视网站建设怎么做原创短视频网站