agentx-python 0.1__tar.gz → 0.2.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,69 @@
1
+ Metadata-Version: 2.1
2
+ Name: agentx-python
3
+ Version: 0.2.1
4
+ Summary: Offical Python SDK for AgentX (https://www.agentx.so/)
5
+ Home-page: https://github.com/AgentX-ai/AgentX-python-sdk
6
+ Author: Robin Wang and AgentX Team
7
+ Author-email: contact@agentx.so
8
+ Classifier: Programming Language :: Python :: 3
9
+ Classifier: License :: OSI Approved :: MIT License
10
+ Classifier: Operating System :: OS Independent
11
+ Requires-Python: >=3.6
12
+ Description-Content-Type: text/markdown
13
+ License-File: LICENSE
14
+
15
+ # AgentX Python SDK API library
16
+
17
+ [![PyPI version](https://img.shields.io/pypi/v/agentx-python)](https://pypi.org/project/agentx-python/)
18
+
19
+ The AgentX Python SDK provides a convenient way to access to your Agent programmatically.
20
+ This is a python SDK for AgentX (https://www.agentx.so/)
21
+
22
+ ## Installation
23
+
24
+ ```bash
25
+ pip install --upgrade agentx-python
26
+ ```
27
+
28
+ ## Usage
29
+
30
+ Provide an `api_key` inline or set `AGENTX_API_KEY` as an environment variable.
31
+ You can get an API key from https://app.agentx.so
32
+
33
+ ### Agent
34
+
35
+ ```
36
+ from agentx_python import AgentX
37
+
38
+ client = AgentX(api_key="<your api key here>")
39
+
40
+ # Get the list of agents you have
41
+ print(client.list_agents())
42
+ ```
43
+
44
+ ### Conversation
45
+
46
+ Each Conversation has `agents` and `users` tied to it.
47
+
48
+ ```
49
+ # get agent
50
+ my_agent = client.get_agent(id="<agent id here>")
51
+
52
+ # Get the list of conversation from this agent
53
+ print(my_agent.list_conversations())
54
+ ```
55
+
56
+ ### Chat
57
+
58
+ A `chat` needs to happen in the conversation. You can do `stream` response too, default `False`.
59
+
60
+ ```
61
+ a_conversation = my_agent.get_conversation(id="<conversation id here>")
62
+
63
+ response = a_conversation.chat("Hello, what is your name?", stream=True)
64
+ for chunk in response:
65
+ print(chunk, end="")
66
+
67
+ # output:
68
+ # My name is Rosita. I'm an AI assistant created by AgentX. It's nice to meet you! How can I help you today?
69
+ ```
@@ -0,0 +1,55 @@
1
+ # AgentX Python SDK API library
2
+
3
+ [![PyPI version](https://img.shields.io/pypi/v/agentx-python)](https://pypi.org/project/agentx-python/)
4
+
5
+ The AgentX Python SDK provides a convenient way to access to your Agent programmatically.
6
+ This is a python SDK for AgentX (https://www.agentx.so/)
7
+
8
+ ## Installation
9
+
10
+ ```bash
11
+ pip install --upgrade agentx-python
12
+ ```
13
+
14
+ ## Usage
15
+
16
+ Provide an `api_key` inline or set `AGENTX_API_KEY` as an environment variable.
17
+ You can get an API key from https://app.agentx.so
18
+
19
+ ### Agent
20
+
21
+ ```
22
+ from agentx_python import AgentX
23
+
24
+ client = AgentX(api_key="<your api key here>")
25
+
26
+ # Get the list of agents you have
27
+ print(client.list_agents())
28
+ ```
29
+
30
+ ### Conversation
31
+
32
+ Each Conversation has `agents` and `users` tied to it.
33
+
34
+ ```
35
+ # get agent
36
+ my_agent = client.get_agent(id="<agent id here>")
37
+
38
+ # Get the list of conversation from this agent
39
+ print(my_agent.list_conversations())
40
+ ```
41
+
42
+ ### Chat
43
+
44
+ A `chat` needs to happen in the conversation. You can do `stream` response too, default `False`.
45
+
46
+ ```
47
+ a_conversation = my_agent.get_conversation(id="<conversation id here>")
48
+
49
+ response = a_conversation.chat("Hello, what is your name?", stream=True)
50
+ for chunk in response:
51
+ print(chunk, end="")
52
+
53
+ # output:
54
+ # My name is Rosita. I'm an AI assistant created by AgentX. It's nice to meet you! How can I help you today?
55
+ ```
@@ -1,7 +1,6 @@
1
1
  import logging
2
- import os
3
2
 
4
- from agentx_python.agent import Agent
3
+ from agentx_python.agentx import AgentX
5
4
  from agentx_python.version import VERSION
6
5
 
7
6
  logging.basicConfig(
@@ -10,10 +9,5 @@ logging.basicConfig(
10
9
  datefmt="%Y-%m-%d %H:%M:%S %Z",
11
10
  )
12
11
 
13
-
14
- api_key = os.environ.get("OPENAI_API_KEY")
15
-
16
- Agent = Agent()
17
-
12
+ __all__ = ["AgentX"]
18
13
  __version__ = VERSION
19
- __all__ = ["api_key", "Agent"]
@@ -0,0 +1,51 @@
1
+ from typing import List
2
+ import requests
3
+ import os
4
+ import logging
5
+
6
+ from agentx_python.util import get_headers
7
+ from agentx_python.resources.agent import Agent
8
+
9
+
10
+ class AgentX:
11
+
12
+ def __init__(self, api_key: str = None):
13
+ self.api_key = api_key or os.getenv("AGENTX_API_KEY")
14
+ if self.api_key and not os.getenv("AGENTX_API_KEY"):
15
+ os.environ["AGENTX_API_KEY"] = self.api_key
16
+
17
+ def get_agent(self, id: str) -> Agent:
18
+ url = f"https://api.agentx.so/api/v1/access/agents/{id}"
19
+ # Make a GET request to the AgentX API
20
+ response = requests.get(url, headers=get_headers())
21
+ # Check if response was successful
22
+ if response.status_code == 200:
23
+ agent_res = response.json()
24
+ return Agent(
25
+ id=agent_res.get("_id"),
26
+ name=agent_res.get("name"),
27
+ avatar=agent_res.get("avatar"),
28
+ createdAt=agent_res.get("createdAt"),
29
+ updatedAt=agent_res.get("updatedAt"),
30
+ )
31
+ else:
32
+ raise Exception(f"Failed to retrieve agent: {response.reason}")
33
+
34
+ def list_agents(self) -> List[Agent]:
35
+ url = "https://api.agentx.so/api/v1/access/agents"
36
+ # Make a GET request to the AgentX API
37
+ response = requests.get(url, headers=get_headers())
38
+ # Check if response was successful
39
+ if response.status_code == 200:
40
+ return [
41
+ Agent(
42
+ id=agent_res.get("_id"),
43
+ name=agent_res.get("name"),
44
+ avatar=agent_res.get("avatar"),
45
+ createdAt=agent_res.get("createdAt"),
46
+ updatedAt=agent_res.get("updatedAt"),
47
+ )
48
+ for agent_res in response.json()
49
+ ]
50
+ else:
51
+ raise Exception(f"Failed to list agents: {response.reason}")
@@ -0,0 +1,46 @@
1
+ from typing import Optional, List
2
+ from pydantic import BaseModel, Field
3
+ import requests
4
+ import os
5
+ import logging
6
+ from dataclasses import dataclass
7
+ from agentx_python.util import get_headers
8
+ from .conversation import Conversation
9
+
10
+
11
+ @dataclass
12
+ class Agent(BaseModel):
13
+ id: str
14
+ name: str
15
+ avatar: Optional[str]
16
+ createdAt: Optional[str]
17
+ updatedAt: Optional[str]
18
+
19
+ def __init__(self, **data):
20
+ super().__init__(**data)
21
+
22
+ def get_conversation(self, id: str) -> Conversation:
23
+ list_of_conversations = self.list_conversations()
24
+ return next(
25
+ (conv for conv in list_of_conversations if conv.id == id),
26
+ Exception("404 - Conversation not found"),
27
+ )
28
+
29
+ def list_conversations(self) -> List[Conversation]:
30
+ url = f"https://api.agentx.so/api/v1/access/agents/{self.id}/conversations"
31
+ response = requests.get(url, headers=get_headers())
32
+ if response.status_code == 200:
33
+ return [
34
+ Conversation(
35
+ agent_id=self.id,
36
+ id=conv_res.get("_id"),
37
+ title=conv_res.get("title"),
38
+ users=conv_res.get("users"),
39
+ agents=conv_res.get("bots"),
40
+ createdAt=conv_res.get("createdAt"),
41
+ updatedAt=conv_res.get("updatedAt"),
42
+ )
43
+ for conv_res in response.json()
44
+ ]
45
+ else:
46
+ raise Exception(f"Failed to retrieve agent details: {response.reason}")
@@ -0,0 +1,63 @@
1
+ from typing import Optional, List
2
+ from pydantic import BaseModel, Field
3
+ import os
4
+ import requests
5
+ from agentx_python.util import get_headers
6
+
7
+
8
+ class Conversation(BaseModel):
9
+ agent_id: str
10
+ id: str
11
+ title: Optional[str] = Field(default=None) # conversation customized title
12
+ users: List[str]
13
+ agents: List[str]
14
+ createdAt: Optional[str]
15
+ updatedAt: Optional[str]
16
+
17
+ def __init__(self, **data):
18
+ super().__init__(**data)
19
+
20
+ def generate_conversation_id(self):
21
+ return "generate new_conversation_id"
22
+
23
+ def list_messages(self):
24
+ url = f"https://api.agentx.so/api/v1/access/agents/{self.agent_id}/conversations/{self.id}"
25
+ response = requests.get(url, headers=get_headers())
26
+ if response.status_code == 200:
27
+ return response.json()
28
+ else:
29
+ raise Exception(
30
+ f"Failed to retrieve agent details: {response.status_code} - {response.reason}"
31
+ )
32
+
33
+ def chat(self, message: str, stream: bool = False, context: int = None):
34
+ if stream:
35
+ return self._chat_stream(message, context)
36
+ else:
37
+ url = f"https://api.agentx.so/api/v1/access/conversations/{self.id}/message"
38
+ response = requests.post(
39
+ url,
40
+ headers=get_headers(),
41
+ json={"message": message, "context": context},
42
+ )
43
+ return response.json()
44
+
45
+ def _chat_stream(self, message: str, context: int = None):
46
+ url = f"https://api.agentx.so/api/v1/access/conversations/{self.id}/messagesse"
47
+ response = requests.post(
48
+ url, headers=get_headers(), json={"message": message, "context": context}
49
+ )
50
+ if response.status_code == 200:
51
+ buf = b""
52
+ for chunk in response.iter_content():
53
+ buf += chunk
54
+ try:
55
+ chunk = buf.decode("utf-8")
56
+ yield chunk
57
+ except UnicodeDecodeError:
58
+ continue
59
+ buf = b""
60
+ else:
61
+ raise Exception(
62
+ f"Failed to send message: {response.status_code} - {response.reason}"
63
+ )
@@ -0,0 +1,5 @@
1
+ import os
2
+
3
+
4
+ def get_headers(api_key: str = None):
5
+ return {"accept": "*/*", "x-api-key": api_key or os.getenv("AGENTX_API_KEY")}
@@ -0,0 +1,69 @@
1
+ Metadata-Version: 2.1
2
+ Name: agentx-python
3
+ Version: 0.2.1
4
+ Summary: Offical Python SDK for AgentX (https://www.agentx.so/)
5
+ Home-page: https://github.com/AgentX-ai/AgentX-python-sdk
6
+ Author: Robin Wang and AgentX Team
7
+ Author-email: contact@agentx.so
8
+ Classifier: Programming Language :: Python :: 3
9
+ Classifier: License :: OSI Approved :: MIT License
10
+ Classifier: Operating System :: OS Independent
11
+ Requires-Python: >=3.6
12
+ Description-Content-Type: text/markdown
13
+ License-File: LICENSE
14
+
15
+ # AgentX Python SDK API library
16
+
17
+ [![PyPI version](https://img.shields.io/pypi/v/agentx-python)](https://pypi.org/project/agentx-python/)
18
+
19
+ The AgentX Python SDK provides a convenient way to access to your Agent programmatically.
20
+ This is a python SDK for AgentX (https://www.agentx.so/)
21
+
22
+ ## Installation
23
+
24
+ ```bash
25
+ pip install --upgrade agentx-python
26
+ ```
27
+
28
+ ## Usage
29
+
30
+ Provide an `api_key` inline or set `AGENTX_API_KEY` as an environment variable.
31
+ You can get an API key from https://app.agentx.so
32
+
33
+ ### Agent
34
+
35
+ ```
36
+ from agentx_python import AgentX
37
+
38
+ client = AgentX(api_key="<your api key here>")
39
+
40
+ # Get the list of agents you have
41
+ print(client.list_agents())
42
+ ```
43
+
44
+ ### Conversation
45
+
46
+ Each Conversation has `agents` and `users` tied to it.
47
+
48
+ ```
49
+ # get agent
50
+ my_agent = client.get_agent(id="<agent id here>")
51
+
52
+ # Get the list of conversation from this agent
53
+ print(my_agent.list_conversations())
54
+ ```
55
+
56
+ ### Chat
57
+
58
+ A `chat` needs to happen in the conversation. You can do `stream` response too, default `False`.
59
+
60
+ ```
61
+ a_conversation = my_agent.get_conversation(id="<conversation id here>")
62
+
63
+ response = a_conversation.chat("Hello, what is your name?", stream=True)
64
+ for chunk in response:
65
+ print(chunk, end="")
66
+
67
+ # output:
68
+ # My name is Rosita. I'm an AI assistant created by AgentX. It's nice to meet you! How can I help you today?
69
+ ```
@@ -2,10 +2,14 @@ LICENSE
2
2
  README.md
3
3
  setup.py
4
4
  agentx_python/__init__.py
5
- agentx_python/agent.py
5
+ agentx_python/agentx.py
6
+ agentx_python/util.py
6
7
  agentx_python/version.py
7
8
  agentx_python.egg-info/PKG-INFO
8
9
  agentx_python.egg-info/SOURCES.txt
9
10
  agentx_python.egg-info/dependency_links.txt
10
11
  agentx_python.egg-info/requires.txt
11
- agentx_python.egg-info/top_level.txt
12
+ agentx_python.egg-info/top_level.txt
13
+ agentx_python/resources/__init__.py
14
+ agentx_python/resources/agent.py
15
+ agentx_python/resources/conversation.py
@@ -2,7 +2,7 @@ from setuptools import setup, find_packages
2
2
 
3
3
  setup(
4
4
  name="agentx-python",
5
- version="0.1",
5
+ version="0.2.1", # Update this version number each time you make a release
6
6
  packages=find_packages(),
7
7
  install_requires=[
8
8
  "urllib3>=1.26.11",
@@ -1,30 +0,0 @@
1
- Metadata-Version: 2.1
2
- Name: agentx-python
3
- Version: 0.1
4
- Summary: Offical Python SDK for AgentX (https://www.agentx.so/)
5
- Home-page: https://github.com/AgentX-ai/AgentX-python-sdk
6
- Author: Robin Wang and AgentX Team
7
- Author-email: contact@agentx.so
8
- Classifier: Programming Language :: Python :: 3
9
- Classifier: License :: OSI Approved :: MIT License
10
- Classifier: Operating System :: OS Independent
11
- Requires-Python: >=3.6
12
- Description-Content-Type: text/markdown
13
- License-File: LICENSE
14
-
15
- # AgentX Python SDK
16
-
17
- This is a python SDK for AgentX (https://www.agentx.so/)
18
-
19
- ## Installation
20
-
21
- ```bash
22
- pip install --upgrade agentx-python
23
- ```
24
-
25
- ## Usage
26
-
27
- ```
28
- from agentx_python import agent
29
- print(agent.get_agent("your-agent-id-here"))
30
- ```
@@ -1,16 +0,0 @@
1
- # AgentX Python SDK
2
-
3
- This is a python SDK for AgentX (https://www.agentx.so/)
4
-
5
- ## Installation
6
-
7
- ```bash
8
- pip install --upgrade agentx-python
9
- ```
10
-
11
- ## Usage
12
-
13
- ```
14
- from agentx_python import agent
15
- print(agent.get_agent("your-agent-id-here"))
16
- ```
@@ -1,55 +0,0 @@
1
- import requests
2
- import os
3
- import logging
4
- import agentx_python as agentx
5
- from functools import wraps
6
-
7
-
8
- def api_key_check_decorator(method):
9
- @wraps(method)
10
- def wrapper(self, *args, **kwargs):
11
- self.middleware()
12
- return method(self, *args, **kwargs)
13
-
14
- return wrapper
15
-
16
-
17
- class Agent:
18
-
19
- def middleware(self):
20
- self.api_key = os.getenv("AGENTX_API_KEY") or agentx.api_key
21
- if not self.api_key:
22
- raise Exception(
23
- "No API key provided. You can set your API key in code using 'agentx.api_key = <API-KEY>', or you can set the environment variable AGENTX_API_KEY=<API-KEY>). You can generate API keys in the AgentX https://app.agentx.so."
24
- )
25
-
26
- @api_key_check_decorator
27
- def get_agent(self, id: str):
28
- url = f"https://api.agentx.so/api/v1/access/agents/{id}"
29
- headers = {"accept": "*/*", "x-api-key": self.api_key}
30
-
31
- # Make a GET request to the AgentX API
32
- response = requests.get(url, headers=headers)
33
- # Check if response was successful
34
- if response.status_code == 200:
35
- return response.json()
36
- else:
37
- logging.info(
38
- response.json()
39
- ) # Print text content of response (or process it as needed)
40
- raise Exception(
41
- f"Failed to retrieve agent details: {response.status_code} - {response.reason}"
42
- )
43
-
44
- @api_key_check_decorator
45
- def list_agents(self):
46
- url = "https://api.agentx.so/api/v1/access/agents"
47
- headers = {"accept": "*/*", "x-api-key": self.api_key}
48
-
49
- # Make a GET request to the AgentX API
50
- response = requests.get(url, headers=headers)
51
- # Check if response was successful
52
- if response.status_code == 200:
53
- return response.json()
54
- else:
55
- logging.info(response.json())
@@ -1,30 +0,0 @@
1
- Metadata-Version: 2.1
2
- Name: agentx-python
3
- Version: 0.1
4
- Summary: Offical Python SDK for AgentX (https://www.agentx.so/)
5
- Home-page: https://github.com/AgentX-ai/AgentX-python-sdk
6
- Author: Robin Wang and AgentX Team
7
- Author-email: contact@agentx.so
8
- Classifier: Programming Language :: Python :: 3
9
- Classifier: License :: OSI Approved :: MIT License
10
- Classifier: Operating System :: OS Independent
11
- Requires-Python: >=3.6
12
- Description-Content-Type: text/markdown
13
- License-File: LICENSE
14
-
15
- # AgentX Python SDK
16
-
17
- This is a python SDK for AgentX (https://www.agentx.so/)
18
-
19
- ## Installation
20
-
21
- ```bash
22
- pip install --upgrade agentx-python
23
- ```
24
-
25
- ## Usage
26
-
27
- ```
28
- from agentx_python import agent
29
- print(agent.get_agent("your-agent-id-here"))
30
- ```
File without changes
File without changes