mirror of
https://git.mirrors.martin98.com/https://github.com/infiniflow/ragflow.git
synced 2025-04-22 14:10:01 +08:00

### What problem does this PR solve? Add sdk for list agents and sessions ### Type of change - [x] New Feature (non-breaking change which adds functionality) Co-authored-by: liuhua <10215101452@stu.ecun.edu.cn>
76 lines
2.6 KiB
Python
76 lines
2.6 KiB
Python
from .base import Base
|
|
from .session import Session
|
|
import requests
|
|
from typing import List
|
|
|
|
class Agent(Base):
|
|
def __init__(self,rag,res_dict):
|
|
self.id = None
|
|
self.avatar = None
|
|
self.canvas_type = None
|
|
self.description = None
|
|
self.dsl = None
|
|
super().__init__(rag, res_dict)
|
|
|
|
class Dsl(Base):
|
|
def __init__(self,rag,res_dict):
|
|
self.answer = []
|
|
self.components = {
|
|
"begin": {
|
|
"downstream": ["Answer:China"],
|
|
"obj": {
|
|
"component_name": "Begin",
|
|
"params": {}
|
|
},
|
|
"upstream": []
|
|
}
|
|
}
|
|
self.graph = {
|
|
"edges": [],
|
|
"nodes": [
|
|
{
|
|
"data": {
|
|
"label": "Begin",
|
|
"name": "begin"
|
|
},
|
|
"id": "begin",
|
|
"position": {
|
|
"x": 50,
|
|
"y": 200
|
|
},
|
|
"sourcePosition": "left",
|
|
"targetPosition": "right",
|
|
"type": "beginNode"
|
|
}
|
|
]
|
|
}
|
|
self.history = []
|
|
self.messages = []
|
|
self.path = []
|
|
self.reference = []
|
|
super().__init__(rag,res_dict)
|
|
|
|
@staticmethod
|
|
def create_session(id,rag) -> Session:
|
|
res = requests.post(f"{rag.api_url}/agents/{id}/sessions",headers={"Authorization": f"Bearer {rag.user_key}"},json={})
|
|
res = res.json()
|
|
if res.get("code") == 0:
|
|
return Session(rag,res.get("data"))
|
|
raise Exception(res.get("message"))
|
|
|
|
@staticmethod
|
|
def list_sessions(agent_id,rag,page: int = 1, page_size: int = 30, orderby: str = "create_time", desc: bool = True,
|
|
id: str = None) -> List[Session]:
|
|
url = f"{rag.api_url}/agents/{agent_id}/sessions"
|
|
headers = {"Authorization": f"Bearer {rag.user_key}"}
|
|
params = {"page": page, "page_size": page_size, "orderby": orderby, "desc": desc, "id": id}
|
|
res = requests.get(url=url,headers=headers,params=params)
|
|
res = res.json()
|
|
if res.get("code") == 0:
|
|
result_list = []
|
|
for data in res.get("data"):
|
|
temp_agent = Session(rag,data)
|
|
result_list.append(temp_agent)
|
|
return result_list
|
|
raise Exception(res.get("message"))
|