File size: 4,417 Bytes
d04e364
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
// pages/api/chat.js

import axios from 'axios';
export const config =     {
    "name" : "huggingchat",
    "url" : "/api/huggingchat",
    "description" : "Get response from huggingchat AI. huggingchat AI is a very powerful AI that can do a lot of things. It have access to real time internet! It can provide you with the latest news, weather, and more.",
    "query" : "prompt, web_search",
    "response" : "text",
    "testURL" : "./api/huggingchat?prompt=hello&web_search=false"
  }

const getUUID = async ()=>{

    const headers = {
        Cookie: '_ga=GA1.1.263364295.1704009324; __stripe_mid=576d7254-9b38-447d-b03a-0455234c85aa028d68; token=HEiBngeHcwmTbeNyMsqghqEbqamhgoGDNPAkFnaLNdUzfcoRqDBFImcbJrZwxXiAcVgxycPcNYLiGLwxAplmnxYpiwSmJzKfeINQjOfOzRRYkceAMEdDMmAmbOvBoJCB; token=HEiBngeHcwmTbeNyMsqghqEbqamhgoGDNPAkFnaLNdUzfcoRqDBFImcbJrZwxXiAcVgxycPcNYLiGLwxAplmnxYpiwSmJzKfeINQjOfOzRRYkceAMEdDMmAmbOvBoJCB; aws-waf-token=d60bed03-062c-4a5e-a13a-6812ec27064f:HgoAbUVRTiMBAAAA:0mDwu8h4MQwINC18fLNSLZa1kT3/1v4svl7RhEX1M8tXwchT/FqCc6fsn9eg88/G2yxHICSo0ab7R71o+rZlYjLDSsKteYXZSbVJyACrSUoE+x0T30pCqCkepaLaiI7jy5bC5DRPEWmpy5TYVpPmfLWf5EA9o3Jp9HYG7qw2i7t350MCdgb0fmDPxP7wnQoAMioXkyL13f3r2rxYAZVw78KlZdE=; __stripe_sid=94dfd71a-ca40-498b-ad9f-6e29b1f8d7c634c758; hf-chat=699d2836-9e8f-482c-9515-3dd214d419ce; _ga_8Q63TH4CSL=GS1.1.1712576098.12.1.1712576109.49.0.0',
        'Content-Type': 'application/json'
      };
    let url = 'https://huggingface.co/chat/conversation/6614111dbb90af362a0d6ab4/__data.json?x-sveltekit-invalidated=11'

    const response = await axios.get(url, { headers });
    const data = response.data;



    function findAllUUIDs(data) {
        const uuids = []; // Array to store UUIDs
        
        // Recursive function to traverse nested objects and arrays
        function traverse(obj) {
            for (const key in obj) {
                if (typeof obj[key] === 'string' && obj[key].match(/[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}/)) {
                    uuids.push(obj[key]); // If the value is a UUID, push it to the array
                } else if (typeof obj[key] === 'object' && obj[key] !== null) {
                    traverse(obj[key]); // If the value is an object or array, recursively call the function
                }
            }
        }
        
        traverse(data); // Start traversal from the root object
        
        return uuids;
    }
    
    const allUUIDs = findAllUUIDs(data);
    console.log(allUUIDs);
    console.log(allUUIDs[allUUIDs.length - 1]);
    return allUUIDs[allUUIDs.length - 1];
}
export default async function handler(req, res) {
  if (req.method === 'GET') {
    const { prompt, web_search } = req.query;
    const url = 'https://huggingface.co/chat/conversation/6614111dbb90af362a0d6ab4';
    const headers = {
      Cookie: '_ga=GA1.1.263364295.1704009324; __stripe_mid=576d7254-9b38-447d-b03a-0455234c85aa028d68; token=HEiBngeHcwmTbeNyMsqghqEbqamhgoGDNPAkFnaLNdUzfcoRqDBFImcbJrZwxXiAcVgxycPcNYLiGLwxAplmnxYpiwSmJzKfeINQjOfOzRRYkceAMEdDMmAmbOvBoJCB; token=HEiBngeHcwmTbeNyMsqghqEbqamhgoGDNPAkFnaLNdUzfcoRqDBFImcbJrZwxXiAcVgxycPcNYLiGLwxAplmnxYpiwSmJzKfeINQjOfOzRRYkceAMEdDMmAmbOvBoJCB; aws-waf-token=d60bed03-062c-4a5e-a13a-6812ec27064f:HgoAbUVRTiMBAAAA:0mDwu8h4MQwINC18fLNSLZa1kT3/1v4svl7RhEX1M8tXwchT/FqCc6fsn9eg88/G2yxHICSo0ab7R71o+rZlYjLDSsKteYXZSbVJyACrSUoE+x0T30pCqCkepaLaiI7jy5bC5DRPEWmpy5TYVpPmfLWf5EA9o3Jp9HYG7qw2i7t350MCdgb0fmDPxP7wnQoAMioXkyL13f3r2rxYAZVw78KlZdE=; __stripe_sid=94dfd71a-ca40-498b-ad9f-6e29b1f8d7c634c758; hf-chat=699d2836-9e8f-482c-9515-3dd214d419ce; _ga_8Q63TH4CSL=GS1.1.1712576098.12.1.1712576109.49.0.0',
      'Content-Type': 'application/json'
    };
    
    const data = {
      inputs: prompt || 'hi',
      id: await getUUID(),
      is_retry: false,
      is_continue: false,
      web_search: web_search=='true',
      files: []
    };

    try {
      const response = await axios.post(url, data, { headers });
      console.log('API response:', response.data);
      res.status(response.status).json(JSON.parse(response.data.split('\n')[response.data.split('\n').length - 2]));
    } catch (error) {
      console.error('Error:', error);
      res.status(error.response?.status || 500).json({ message: 'Internal server error' });
    }
  } else {
    res.setHeader('Allow', ['GET']);
    res.status(405).end(`Method ${req.method} Not Allowed`);
  }
}