You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. from .base import Base
  2. from .session import Session
  3. import requests
  4. class Agent(Base):
  5. def __init__(self,rag,res_dict):
  6. self.id = None
  7. self.avatar = None
  8. self.canvas_type = None
  9. self.description = None
  10. self.dsl = None
  11. super().__init__(rag, res_dict)
  12. class Dsl(Base):
  13. def __init__(self,rag,res_dict):
  14. self.answer = []
  15. self.components = {
  16. "begin": {
  17. "downstream": ["Answer:China"],
  18. "obj": {
  19. "component_name": "Begin",
  20. "params": {}
  21. },
  22. "upstream": []
  23. }
  24. }
  25. self.graph = {
  26. "edges": [],
  27. "nodes": [
  28. {
  29. "data": {
  30. "label": "Begin",
  31. "name": "begin"
  32. },
  33. "id": "begin",
  34. "position": {
  35. "x": 50,
  36. "y": 200
  37. },
  38. "sourcePosition": "left",
  39. "targetPosition": "right",
  40. "type": "beginNode"
  41. }
  42. ]
  43. }
  44. self.history = []
  45. self.messages = []
  46. self.path = []
  47. self.reference = []
  48. super().__init__(rag,res_dict)
  49. @staticmethod
  50. def create_session(id,rag,**kwargs) -> Session:
  51. res = requests.post(f"{rag.api_url}/agents/{id}/sessions",headers={"Authorization": f"Bearer {rag.user_key}"},json=kwargs)
  52. res = res.json()
  53. if res.get("code") == 0:
  54. return Session(rag,res.get("data"))
  55. raise Exception(res.get("message"))
  56. @staticmethod
  57. def list_sessions(agent_id,rag,page: int = 1, page_size: int = 30, orderby: str = "create_time", desc: bool = True,
  58. id: str = None) -> list[Session]:
  59. url = f"{rag.api_url}/agents/{agent_id}/sessions"
  60. headers = {"Authorization": f"Bearer {rag.user_key}"}
  61. params = {"page": page, "page_size": page_size, "orderby": orderby, "desc": desc, "id": id}
  62. res = requests.get(url=url,headers=headers,params=params)
  63. res = res.json()
  64. if res.get("code") == 0:
  65. result_list = []
  66. for data in res.get("data"):
  67. temp_agent = Session(rag,data)
  68. result_list.append(temp_agent)
  69. return result_list
  70. raise Exception(res.get("message"))