【Tauri】(4):整合Tauri和actix-web做本地大模型应用开发,可以实现session 登陆接口,完成页面展示,进入聊天界面

1,视频地址

https://www.bilibili.com/video/BV1GJ4m1Y7Aj/

【Tauri】(4):整合Tauri和actix-web做本地大模型应用开发,可以实现session 登陆接口,完成页面展示,进入聊天界面

使用国内代理进行加速

配置rust环境方法

https://rsproxy.cn/

特别注意要配置好:

步骤三:设置 crates.io 镜像, 修改配置 ~/.cargo/config,已支持git协议和sparse协议,>=1.68 版本建议使用 sparse-index,速度更快。

[source.crates-io]
replace-with = 'rsproxy-sparse'
[source.rsproxy]
registry = "https://rsproxy.cn/crates.io-index"
[source.rsproxy-sparse]
registry = "sparse+https://rsproxy.cn/index/"
[registries.rsproxy]
index = "https://rsproxy.cn/crates.io-index"
[net]
git-fetch-with-cli = true

2,然后开始编写 http 服务

整合 tauri 代码和 actix-web,入门文档:
https://juejin.cn/post/7342858918161793059

参考文章:

https://blog.moonguard.dev/setting-up-actix-in-tauri

主要就是:

fn main() {tauri::Builder::default().setup(|app| {let handle = app.handle();let boxed_handle = Box::new(handle);thread::spawn(move || {server::init(*boxed_handle).unwrap();});Ok(())}).invoke_handler(tauri::generate_handler![greet]).run(tauri::generate_context!()).expect("error while running tauri application");
}

实现了 server::init

然后增加 controller :

#[post("/api/session")]
pub async fn session_handle() -> actix_web::Result<String> {let text = "{\"status\":\"Success\", \"message\":\"\", \"data\": {\"auth\": false, \"model\":\"chatglm3\"}}";println!("{}",text);Ok(text.to_string())
}

这样就可以登陆成功了:

在这里插入图片描述

3,接下来就是实现 chat 聊天接口了

需要返回标准的 openai api 接口了。

4,解决跨域问题

https://docs.rs/actix-cors/latest/actix_cors/

使用 actix-cors 进行跨域处理:

use actix_cors::Cors;
use actix_web::{get, http, web, App, HttpRequest, HttpResponse, HttpServer};#[get("/index.html")]
async fn index(req: HttpRequest) -> &'static str {"<p>Hello World!</p>"
}#[actix_web::main]
async fn main() -> std::io::Result<()> {HttpServer::new(|| {let cors = Cors::default().allowed_origin("https://www.rust-lang.org").allowed_origin_fn(|origin, _req_head| {origin.as_bytes().ends_with(b".rust-lang.org")}).allowed_methods(vec!["GET", "POST"]).allowed_headers(vec![http::header::AUTHORIZATION, http::header::ACCEPT]).allowed_header(http::header::CONTENT_TYPE).max_age(3600);App::new().wrap(cors).service(index)}).bind(("127.0.0.1", 8080))?.run().await;Ok(())
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/520925.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于pytest的证券清算系统功能测试工具开发

需求 1.造测试数据&#xff1a;根据测试需要&#xff0c;自动化构造各业务场景的中登清算数据与清算所需起来数据 2.测试清算系统功能&#xff1a; 自动化测试方案 工具设计 工具框架图 工具流程图 实现技术 python, pytest, allure, 多进程&#xff0c;mysql, 前端 效果 测…

容器+虚拟机双引擎,ZStack Edge云原生超融合打通业务最后一公里

企业数字化转型的焦点正在发生变化&#xff0c;云基础设施由资源到应用&#xff0c;数据中心从核心到边缘。面向云原生趋势&#xff0c;围绕应用升级&#xff0c;新一代超融合产品——云原生超融合应运而生。 云原生与边缘计算趋势催生云原生超融合 当前&#xff0c;企业客户…

微信小程序简单输入框界面(实现选择标签功能)

微信小程序简单输入框界面&#xff0c;实现选择标签功能、输入框字数计数的简单界面功能。 1、js代码&#xff1a; Page({/*** 页面的初始数据*/data: {count: 500,labelList: [{text: 开心,checked: true}, {text: 难受想哭,checked: true},{text: 快乐,checked: false}, {te…

如何确保OKR与公司的整体战略保持一致?

深入理解公司战略 首先&#xff0c;团队或个人需要全面、深入地理解公司的整体战略和目标。这包括了解公司的长期规划、市场定位、竞争优势以及核心竞争力等方面。只有对公司的战略有清晰的认识&#xff0c;才能确保OKR与之保持一致。 如何确保OKR与公司的整体战略保持一致&a…

Visual Studio如何进行类文件的管理(类文件的分离)

大家好&#xff1a; 衷心希望各位点赞。 您的问题请留在评论区&#xff0c;我会及时回答。 一、问题背景 实际开发中&#xff0c;类的声明放在头文件中&#xff0c;给程序员看类的成员和方法。比如&#xff1a;Dog.h&#xff08;类的声明文件&#xff09; 类的成员函数的具体…

基于 JavaAgent 代理技术实现 class 字节码插桩(bytebuddy)

先描述一个场景&#xff0c;生产有一个正在运行的java项目&#xff0c;以某 springboot-service.jar 为例&#xff0c;项目发布后发现了某个http接口响应较慢&#xff0c;此时你希望定位这个http接口执行过程中依次调用的几个主要方法的分别执行耗时&#xff0c;用来作为进一步…

开启AI绘画新纪元:让创意在指尖绽放

文章目录 一、了解AI绘画的基本原理二、选择合适的AI绘画工具三、掌握AI绘画的基本技巧四、借鉴与创新&#xff1a;从模仿到创作五、参与社区交流&#xff0c;共同成长《AI绘画教程&#xff1a;Midjourney使用方法与技巧从入门到精通》亮点推荐内容简介作者简介目录 在科技日新…

MySQL--优化(索引--聚簇和非聚簇索引)

MySQL–优化&#xff08;索引–聚簇和非聚簇索引&#xff09; 定位慢查询SQL执行计划索引 存储引擎索引底层数据结构聚簇和非聚簇索引索引创建原则索引失效场景 SQL优化经验 一、聚簇索引 聚簇索引&#xff1a;将数据存储与索引放到了一块&#xff0c;索引结构的叶子节点保存…

测试一下 Anthropic 宣称超过 GPT-4 的 Claude 3 Opus

测试一下 Anthropic 宣称超过 GPT-4 的 Claude 3 Opus 0. 引言1. 测试 Claude 3 Opus 0. 引言 今天测试一下 Anthropic 发布的 Claude 3 Opus。 3月4日&#xff0c;Anthropic 宣布推出 Claude 3 型号系列&#xff0c;该系列在广泛的认知任务中树立了新的行业基准。该系列包括…

NLP_文本数据分析_3(代码示例)

目标 了解文本数据分析的作用.掌握常用的几种文本数据分析方法. 一、 文件数据分析介绍 文本数据分析的作用: 文本数据分析能够有效帮助我们理解数据语料, 快速检查出语料可能存在的问题, 并指导之后模型训练过程中一些超参数的选择. 常用的几种文本数据分析方法: 标签数量分…

Web——HTML

一.HTML概述 超文本标记语言&#xff08;英语&#xff1a;HyperText Markup Language&#xff0c;简称&#xff1a;HTML&#xff09;是一种用于创建网页的标准标记语言。可以使用 HTML 来建立自己的 WEB 站点&#xff0c;HTML 运行在浏览器上&#xff0c;由浏览器来解析。 二.…

图书推荐|Windows Server 2022 系统与网站配置实战

讲述桌面体验、Server Core/Nano Server&#xff0c;容器与云系统的配置 1 本书内容 《Windows Server 2022 系统与网站配置实战》秉持作者一贯理论兼具实践的写作风格&#xff0c;以新版的Windows Server 2022系统与网站配置实践为主题&#xff0c;辅以大量的实例演示&#x…