Spaces:
Runtime error
Runtime error
File size: 5,513 Bytes
b63d6c4 0995744 e9fffa8 b63d6c4 0995744 9ebbf3c 0995744 524fd18 e87b320 97994ad 0995744 3fdc088 0995744 3fdc088 0995744 97994ad 0995744 017e7e6 0995744 97994ad 9ebbf3c eacb76c 9ebbf3c 0995744 b63d6c4 715e7e2 b63d6c4 e87b320 2e7cd56 e87b320 2e7cd56 e87b320 6456be6 cab991e a711f0f f12c88c a711f0f b63d6c4 0995744 | 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 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 | import os
import time
import json
import requests
from typing import Any
from .llm import search_bot,search_bot_v2
from .vector_store import vector_store
# from .logger import logger
from util.time import TimeUtil
from .database import database
from util.schema import Dir
class API():
def __init__(self) -> None:
pass
def search(self,query,**kwargs):
if not query:
return []
docs = vector_store.search(query,**kwargs)
return docs
def marginal_search(self,query,**kwargs):
if not query:
return []
docs = vector_store.marginal_search(query,**kwargs)
return docs
def get_suggestion(self,query):
if not query:
return []
docs = vector_store.marginal_search(query,lambda_mult=0.6)
res = []
for doc in docs:
name = doc.metadata.get('title_llm','')
url = doc.metadata.get('source','')
if name == '' or url == '':
continue
res.append({"name":name,"url":url})
database.write({"query":query,"api":'auto_complete',"result":res},dir=Dir.API)
return res
def get_answer(self,query):
docs = vector_store.search(query)
source = []
context = []
for doc in docs:
if doc.metadata['score']<0.2:
continue
if 'title_llm' in doc.metadata:
source.append({
"name":doc.metadata.get('title_llm',''),
"url":doc.metadata.get('source',''),
"description":doc.metadata.get('description_llm','')
})
context.append(doc.metadata.get('description',''))
# yield json.dumps(source)
context = "\n".join(context)
answer = search_bot(query,context,stream=True)
text = ""
for i in answer:
text += i
yield i
database.write({"query":query,"api":'search',"result":text},dir=Dir.API)
def get_answer_v2(self,query):
docs = vector_store.search(query)
source = []
context = []
for doc in docs:
if doc.metadata['score']<0.2:
continue
if 'title_llm' in doc.metadata:
source.append({
"name":doc.metadata.get('title_llm',''),
"url":doc.metadata.get('source',''),
"description":doc.metadata.get('description_llm','')
})
description = doc.metadata.get('description','')
if description == '':
description = doc.metadata.get('description_llm','')
links = doc.metadata.get('source','')
context.append(f"<context>Description: {description}\nLinks: {links}\n<context/>")
# yield json.dumps(source)
# print(context)
context = "\n".join(context)
answer = search_bot_v2(query,context,stream=True)
text = ""
for i in answer:
text += i
yield i
database.write({"query":query,"api":'answer_v2',"result":text},dir=Dir.API)
def get_filecoin_price(self):
url="https://api.spacescope.io/v2/price/realtime"
headers = {
'authorization': f'Bearer {os.environ["SPACESCOPE_API_KEY"]}'
}
data = None
try:
response = requests.get(url, headers=headers)
data = round(json.loads(response.text)['data']['price'],3)
except Exception as e:
print(e)
return data
def get_filecoin_deposit(self):
url = "https://api.spacescope.io/v2/fvm/defi/leaderboard_summary_combined"
# url="https://api.spacescope.io/v2/fvm/defi/all_protocol_flow?start_date={}&end_date={}".format(TimeUtil.get_date(offset=-2,format='%Y-%m-%d'),TimeUtil.get_date(offset=-1,format='%Y-%m-%d'))
headers = {'authorization': f'Bearer {os.environ["SPACESCOPE_API_KEY"]}'}
data = None
try:
response = requests.get(url, headers=headers)
data = json.loads(response.text)
data = data['data'][-1]['inflow_fil']
data = f"{data:,.0f}"
except Exception as e:
print(e)
return data
def get_filecoin_tvl(self):
data = None
try:
url="https://api.llama.fi/v2/chains"
res=requests.get(url=url)
data = json.loads(res.text)
data = [e for e in data if e['name'] =='Filecoin'][0]['tvl']
data = f"{data:,.1f}"
except Exception as e:
print(e)
return data
def get_fvm_storage(self):
url = "https://dashboard.starboard.ventures/v2/v1/network_core/capacity-services/network_storage_capacity"
response = requests.get(url)
data=response.json()['data'][0]
total_raw_bytes_power = int(data['total_raw_bytes_power'])/1024**6
total_raw_bytes_power = f"{total_raw_bytes_power:,.1f}"
return total_raw_bytes_power
def get_fvm_active_deal(self):
url="https://dashboard.starboard.ventures/v2/v1/network_core/market-deals/deal_states_aggregate_daily"
response = requests.get(url)
data = response.json()['data'][0]
active_deals_verified_bytes = int(data['active_deals_verified_bytes'])/1024**6
active_deals_verified_bytes = f"{active_deals_verified_bytes:,.1f}"
return active_deals_verified_bytes
api = API() |