| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138 |
- import { v4 as uuidv4 } from "uuid";
- export const myMixin = {
- data() {
- return {
- userJson: {},
- new_url: 'https://appapi.cocorobo.cn'
- };
- },
- methods: {
- detectBrowser() {
- const ua = navigator.userAgent;
- // 按优先级顺序检测
- if (ua.includes("Edg/") || ua.includes("Edge/")) {
- return "Microsoft Edge";
- } else if (ua.includes("Firefox")) {
- return "Mozilla Firefox";
- } else if (ua.includes("Trident") || ua.includes("MSIE")) {
- return "Internet Explorer";
- } else if (ua.includes("360EE")) {
- return "360 Browser (极速模式)";
- } else if (ua.includes("360SE")) {
- return "360 Browser (安全模式)";
- } else if (ua.includes("SLBrowser")) {
- return "QQ Browser";
- } else if (ua.includes("UCBrowser")) {
- return "UC Browser";
- } else if (ua.includes("Opera") || ua.includes("OPR/")) {
- return "Opera";
- } else if (ua.includes("Chrome") && !ua.includes("Edg/")) {
- return "Google Chrome";
- } else if (ua.includes("Safari/") && !ua.includes("Chrome")) {
- return "Safari";
- } else {
- return "Other Browser";
- }
- },
- async addOp3(userTime, loadTime, object, status) {
- if (!this.$route.query.userid) return
- try {
- if(!this.userJson || !this.userJson.accountNumber){
- let res = await this.ajax.get(this.$store.state.api + "selectUser", {
- userid: this.$route.query.userid
- });
- this.userJson = res.data[0][0]
- }
- } catch (e) {
- console.log(e);
- return this.addOp3(userTime, loadTime, object, status);
- }
- let _time = new Date()
- .toLocaleString("zh-CN", { hour12: false, timeZone: "Asia/Shanghai" })
- .replace(/\//g, "-");
- let browser = this.detectBrowser();
- let params = {
- userid: this.$route.query.userid,
- username: this.userJson.username,
- accountNumber: this.userJson.accountNumber,
- org: this.userJson.orgName,
- school: this.userJson.schoolName,
- role: this.userJson.type =='1'?'老师':'学生',
- browser: browser,
- userTime: userTime == "1" ? _time : userTime, // 使用时间 1次的就1 其次传秒
- loadTime: loadTime, //load的时间没有就“”
- object: JSON.stringify(object), //执行信息传json
- status: status //成功返回success。失败返回error的信息
- };
- console.log('params',params);
-
- this.ajax
- .post(this.$store.state.apiM + "updateUserData2", [params])
- .then(res => {
- if (res.data.status == 1) {
- console.log("保存成功");
- } else {
- console.log("保存失败");
- }
- })
- .catch(e => {
- console.log("保存失败");
- console.log(e);
- });
- },
- async chat_no_stream(prompt=[], response_format = {
- "type": "text"
- }) {
- return await new Promise((resolve) => {
- let uid = uuidv4();
- let data = JSON.stringify({
- model: 'gpt-4o-2024-11-20',
- temperature: 0,
- max_tokens: 4096,
- top_p: 1,
- frequency_penalty: 0,
- presence_penalty: 0,
- messages: prompt,
- uid: uid,
- mind_map_question: '',
- stream: false,
- response_format: response_format
- });
- let config = {
- method: 'post',
- url: this.new_url + '/api/common/chat',
- headers: {
- 'Content-Type': 'application/json'
- },
- data: data,
- };
- this.ajax.post(config.url,data)
- .then((response) => {
- resolve(response.data.FunctionResponse.choices[0].message.content);
- })
- .catch( (error)=> {
- console.log(error);
- //this.$message.error('服务器繁忙');
- resolve(false);
- });
- });
- },
- async ai_generate_image(prompt) {
- return await new Promise((resolve) => {
- this.ajax
- .post(this.new_url + "/api/agents/generateImage", {
- prompt,
- size: "1024x1024"
- }).then(res => {
- resolve(res.data);
- }).catch(function (error) {
- console.log(error);
- resolve(false);
- });
- })
- },
- }
- };
|