airtrain 0.1.40__tar.gz → 0.1.41__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.
Files changed (83) hide show
  1. {airtrain-0.1.40 → airtrain-0.1.41}/PKG-INFO +1 -1
  2. {airtrain-0.1.40 → airtrain-0.1.41}/airtrain/__init__.py +1 -1
  3. airtrain-0.1.41/airtrain/integrations/together/__init__.py +19 -0
  4. airtrain-0.1.41/airtrain/integrations/together/list_models.py +77 -0
  5. {airtrain-0.1.40 → airtrain-0.1.41}/airtrain/integrations/together/models.py +42 -3
  6. {airtrain-0.1.40 → airtrain-0.1.41}/airtrain.egg-info/PKG-INFO +1 -1
  7. {airtrain-0.1.40 → airtrain-0.1.41}/airtrain.egg-info/SOURCES.txt +1 -0
  8. {airtrain-0.1.40 → airtrain-0.1.41}/pyproject.toml +1 -1
  9. airtrain-0.1.40/airtrain/integrations/together/__init__.py +0 -6
  10. {airtrain-0.1.40 → airtrain-0.1.41}/MANIFEST.in +0 -0
  11. {airtrain-0.1.40 → airtrain-0.1.41}/README.md +0 -0
  12. {airtrain-0.1.40 → airtrain-0.1.41}/airtrain/__main__.py +0 -0
  13. {airtrain-0.1.40 → airtrain-0.1.41}/airtrain/builder/__init__.py +0 -0
  14. {airtrain-0.1.40 → airtrain-0.1.41}/airtrain/builder/agent_builder.py +0 -0
  15. {airtrain-0.1.40 → airtrain-0.1.41}/airtrain/cli/__init__.py +0 -0
  16. {airtrain-0.1.40 → airtrain-0.1.41}/airtrain/cli/builder.py +0 -0
  17. {airtrain-0.1.40 → airtrain-0.1.41}/airtrain/cli/main.py +0 -0
  18. {airtrain-0.1.40 → airtrain-0.1.41}/airtrain/contrib/__init__.py +0 -0
  19. {airtrain-0.1.40 → airtrain-0.1.41}/airtrain/contrib/travel/__init__.py +0 -0
  20. {airtrain-0.1.40 → airtrain-0.1.41}/airtrain/contrib/travel/agents.py +0 -0
  21. {airtrain-0.1.40 → airtrain-0.1.41}/airtrain/contrib/travel/models.py +0 -0
  22. {airtrain-0.1.40 → airtrain-0.1.41}/airtrain/core/__init__.py +0 -0
  23. {airtrain-0.1.40 → airtrain-0.1.41}/airtrain/core/credentials.py +0 -0
  24. {airtrain-0.1.40 → airtrain-0.1.41}/airtrain/core/schemas.py +0 -0
  25. {airtrain-0.1.40 → airtrain-0.1.41}/airtrain/core/skills.py +0 -0
  26. {airtrain-0.1.40 → airtrain-0.1.41}/airtrain/integrations/__init__.py +0 -0
  27. {airtrain-0.1.40 → airtrain-0.1.41}/airtrain/integrations/anthropic/__init__.py +0 -0
  28. {airtrain-0.1.40 → airtrain-0.1.41}/airtrain/integrations/anthropic/credentials.py +0 -0
  29. {airtrain-0.1.40 → airtrain-0.1.41}/airtrain/integrations/anthropic/models_config.py +0 -0
  30. {airtrain-0.1.40 → airtrain-0.1.41}/airtrain/integrations/anthropic/skills.py +0 -0
  31. {airtrain-0.1.40 → airtrain-0.1.41}/airtrain/integrations/aws/__init__.py +0 -0
  32. {airtrain-0.1.40 → airtrain-0.1.41}/airtrain/integrations/aws/credentials.py +0 -0
  33. {airtrain-0.1.40 → airtrain-0.1.41}/airtrain/integrations/aws/skills.py +0 -0
  34. {airtrain-0.1.40 → airtrain-0.1.41}/airtrain/integrations/cerebras/__init__.py +0 -0
  35. {airtrain-0.1.40 → airtrain-0.1.41}/airtrain/integrations/cerebras/credentials.py +0 -0
  36. {airtrain-0.1.40 → airtrain-0.1.41}/airtrain/integrations/cerebras/skills.py +0 -0
  37. {airtrain-0.1.40 → airtrain-0.1.41}/airtrain/integrations/fireworks/__init__.py +0 -0
  38. {airtrain-0.1.40 → airtrain-0.1.41}/airtrain/integrations/fireworks/completion_skills.py +0 -0
  39. {airtrain-0.1.40 → airtrain-0.1.41}/airtrain/integrations/fireworks/conversation_manager.py +0 -0
  40. {airtrain-0.1.40 → airtrain-0.1.41}/airtrain/integrations/fireworks/credentials.py +0 -0
  41. {airtrain-0.1.40 → airtrain-0.1.41}/airtrain/integrations/fireworks/list_models.py +0 -0
  42. {airtrain-0.1.40 → airtrain-0.1.41}/airtrain/integrations/fireworks/models.py +0 -0
  43. {airtrain-0.1.40 → airtrain-0.1.41}/airtrain/integrations/fireworks/requests_skills.py +0 -0
  44. {airtrain-0.1.40 → airtrain-0.1.41}/airtrain/integrations/fireworks/skills.py +0 -0
  45. {airtrain-0.1.40 → airtrain-0.1.41}/airtrain/integrations/fireworks/structured_completion_skills.py +0 -0
  46. {airtrain-0.1.40 → airtrain-0.1.41}/airtrain/integrations/fireworks/structured_requests_skills.py +0 -0
  47. {airtrain-0.1.40 → airtrain-0.1.41}/airtrain/integrations/fireworks/structured_skills.py +0 -0
  48. {airtrain-0.1.40 → airtrain-0.1.41}/airtrain/integrations/google/__init__.py +0 -0
  49. {airtrain-0.1.40 → airtrain-0.1.41}/airtrain/integrations/google/credentials.py +0 -0
  50. {airtrain-0.1.40 → airtrain-0.1.41}/airtrain/integrations/google/skills.py +0 -0
  51. {airtrain-0.1.40 → airtrain-0.1.41}/airtrain/integrations/groq/__init__.py +0 -0
  52. {airtrain-0.1.40 → airtrain-0.1.41}/airtrain/integrations/groq/credentials.py +0 -0
  53. {airtrain-0.1.40 → airtrain-0.1.41}/airtrain/integrations/groq/skills.py +0 -0
  54. {airtrain-0.1.40 → airtrain-0.1.41}/airtrain/integrations/ollama/__init__.py +0 -0
  55. {airtrain-0.1.40 → airtrain-0.1.41}/airtrain/integrations/ollama/credentials.py +0 -0
  56. {airtrain-0.1.40 → airtrain-0.1.41}/airtrain/integrations/ollama/skills.py +0 -0
  57. {airtrain-0.1.40 → airtrain-0.1.41}/airtrain/integrations/openai/__init__.py +0 -0
  58. {airtrain-0.1.40 → airtrain-0.1.41}/airtrain/integrations/openai/chinese_assistant.py +0 -0
  59. {airtrain-0.1.40 → airtrain-0.1.41}/airtrain/integrations/openai/credentials.py +0 -0
  60. {airtrain-0.1.40 → airtrain-0.1.41}/airtrain/integrations/openai/models_config.py +0 -0
  61. {airtrain-0.1.40 → airtrain-0.1.41}/airtrain/integrations/openai/skills.py +0 -0
  62. {airtrain-0.1.40 → airtrain-0.1.41}/airtrain/integrations/sambanova/__init__.py +0 -0
  63. {airtrain-0.1.40 → airtrain-0.1.41}/airtrain/integrations/sambanova/credentials.py +0 -0
  64. {airtrain-0.1.40 → airtrain-0.1.41}/airtrain/integrations/sambanova/skills.py +0 -0
  65. {airtrain-0.1.40 → airtrain-0.1.41}/airtrain/integrations/together/audio_models_config.py +0 -0
  66. {airtrain-0.1.40 → airtrain-0.1.41}/airtrain/integrations/together/credentials.py +0 -0
  67. {airtrain-0.1.40 → airtrain-0.1.41}/airtrain/integrations/together/embedding_models_config.py +0 -0
  68. {airtrain-0.1.40 → airtrain-0.1.41}/airtrain/integrations/together/image_models_config.py +0 -0
  69. {airtrain-0.1.40 → airtrain-0.1.41}/airtrain/integrations/together/image_skill.py +0 -0
  70. {airtrain-0.1.40 → airtrain-0.1.41}/airtrain/integrations/together/models_config.py +0 -0
  71. {airtrain-0.1.40 → airtrain-0.1.41}/airtrain/integrations/together/rerank_models_config.py +0 -0
  72. {airtrain-0.1.40 → airtrain-0.1.41}/airtrain/integrations/together/rerank_skill.py +0 -0
  73. {airtrain-0.1.40 → airtrain-0.1.41}/airtrain/integrations/together/schemas.py +0 -0
  74. {airtrain-0.1.40 → airtrain-0.1.41}/airtrain/integrations/together/skills.py +0 -0
  75. {airtrain-0.1.40 → airtrain-0.1.41}/airtrain/integrations/together/vision_models_config.py +0 -0
  76. {airtrain-0.1.40 → airtrain-0.1.41}/airtrain.egg-info/dependency_links.txt +0 -0
  77. {airtrain-0.1.40 → airtrain-0.1.41}/airtrain.egg-info/entry_points.txt +0 -0
  78. {airtrain-0.1.40 → airtrain-0.1.41}/airtrain.egg-info/requires.txt +0 -0
  79. {airtrain-0.1.40 → airtrain-0.1.41}/airtrain.egg-info/top_level.txt +0 -0
  80. {airtrain-0.1.40 → airtrain-0.1.41}/changelog.md +0 -0
  81. {airtrain-0.1.40 → airtrain-0.1.41}/requirements.txt +0 -0
  82. {airtrain-0.1.40 → airtrain-0.1.41}/setup.cfg +0 -0
  83. {airtrain-0.1.40 → airtrain-0.1.41}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: airtrain
3
- Version: 0.1.40
3
+ Version: 0.1.41
4
4
  Summary: A platform for building and deploying AI agents with structured skills
5
5
  Home-page: https://github.com/rosaboyle/airtrain.dev
6
6
  Author: Dheeraj Pai
@@ -1,6 +1,6 @@
1
1
  """Airtrain - A platform for building and deploying AI agents with structured skills"""
2
2
 
3
- __version__ = "0.1.40"
3
+ __version__ = "0.1.41"
4
4
 
5
5
  # Core imports
6
6
  from .core.skills import Skill, ProcessingError
@@ -0,0 +1,19 @@
1
+ """Together AI integration module"""
2
+
3
+ from .credentials import TogetherAICredentials
4
+ from .skills import TogetherAIChatSkill
5
+ from .list_models import (
6
+ TogetherListModelsSkill,
7
+ TogetherListModelsInput,
8
+ TogetherListModelsOutput,
9
+ )
10
+ from .models import TogetherModel
11
+
12
+ __all__ = [
13
+ "TogetherAICredentials",
14
+ "TogetherAIChatSkill",
15
+ "TogetherListModelsSkill",
16
+ "TogetherListModelsInput",
17
+ "TogetherListModelsOutput",
18
+ "TogetherModel",
19
+ ]
@@ -0,0 +1,77 @@
1
+ from typing import Optional
2
+ import requests
3
+ from pydantic import Field
4
+
5
+ from airtrain.core.skills import Skill, ProcessingError
6
+ from airtrain.core.schemas import InputSchema, OutputSchema
7
+ from .credentials import TogetherAICredentials
8
+ from .models import TogetherModel
9
+
10
+
11
+ class TogetherListModelsInput(InputSchema):
12
+ """Schema for Together AI list models input"""
13
+ pass
14
+
15
+
16
+ class TogetherListModelsOutput(OutputSchema):
17
+ """Schema for Together AI list models output"""
18
+
19
+ data: list[TogetherModel] = Field(
20
+ default_factory=list,
21
+ description="List of Together AI models"
22
+ )
23
+ object: Optional[str] = Field(
24
+ default=None,
25
+ description="Object type"
26
+ )
27
+
28
+
29
+ class TogetherListModelsSkill(Skill[TogetherListModelsInput, TogetherListModelsOutput]):
30
+ """Skill for listing Together AI models"""
31
+
32
+ input_schema = TogetherListModelsInput
33
+ output_schema = TogetherListModelsOutput
34
+
35
+ def __init__(self, credentials: Optional[TogetherAICredentials] = None):
36
+ """Initialize the skill with optional credentials"""
37
+ super().__init__()
38
+ self.credentials = credentials or TogetherAICredentials.from_env()
39
+ self.base_url = "https://api.together.xyz/v1"
40
+
41
+ def process(
42
+ self, input_data: TogetherListModelsInput
43
+ ) -> TogetherListModelsOutput:
44
+ """Process the input and return a list of models."""
45
+ try:
46
+ # Build the URL
47
+ url = f"{self.base_url}/models"
48
+
49
+ # Make the request
50
+ headers = {
51
+ "Authorization": (
52
+ f"Bearer {self.credentials.together_api_key.get_secret_value()}"
53
+ ),
54
+ "accept": "application/json"
55
+ }
56
+
57
+ response = requests.get(url, headers=headers)
58
+ response.raise_for_status()
59
+
60
+ # Parse the response
61
+ result = response.json()
62
+
63
+ # Convert the models to TogetherModel objects
64
+ models = []
65
+ for model_data in result.get("data", []):
66
+ models.append(TogetherModel(**model_data))
67
+
68
+ # Return the output
69
+ return TogetherListModelsOutput(
70
+ data=models,
71
+ object=result.get("object")
72
+ )
73
+
74
+ except requests.RequestException as e:
75
+ raise ProcessingError(f"Failed to list Together AI models: {str(e)}")
76
+ except Exception as e:
77
+ raise ProcessingError(f"Error listing Together AI models: {str(e)}")
@@ -1,6 +1,5 @@
1
- from typing import List, Optional
1
+ from typing import List, Optional, Dict, Any
2
2
  from pydantic import BaseModel, Field, validator
3
- from pathlib import Path
4
3
 
5
4
 
6
5
  class TogetherAIImageInput(BaseModel):
@@ -30,7 +29,7 @@ class TogetherAIImageInput(BaseModel):
30
29
  if width <= 0 or height <= 0:
31
30
  raise ValueError
32
31
  return v
33
- except:
32
+ except ValueError:
34
33
  raise ValueError("Size must be in format WIDTHxHEIGHT (e.g., 1024x1024)")
35
34
 
36
35
 
@@ -54,3 +53,43 @@ class TogetherAIImageOutput(BaseModel):
54
53
  usage: dict = Field(
55
54
  default_factory=dict, description="Usage statistics and billing information"
56
55
  )
56
+
57
+
58
+ class TogetherModel(BaseModel):
59
+ """Schema for Together AI model"""
60
+
61
+ id: str = Field(..., description="Model ID")
62
+ name: Optional[str] = Field(None, description="Model name")
63
+ object: Optional[str] = Field(None, description="Object type")
64
+ created: Optional[int] = Field(None, description="Creation timestamp")
65
+ owned_by: Optional[str] = Field(None, description="Model owner")
66
+ root: Optional[str] = Field(None, description="Root model identifier")
67
+ parent: Optional[str] = Field(None, description="Parent model identifier")
68
+ permission: Optional[List[Dict[str, Any]]] = Field(
69
+ None, description="Permission details"
70
+ )
71
+ metadata: Optional[Dict[str, Any]] = Field(
72
+ None, description="Additional metadata for the model"
73
+ )
74
+ description: Optional[str] = Field(None, description="Model description")
75
+ pricing: Optional[Dict[str, Any]] = Field(None, description="Pricing information")
76
+ context_length: Optional[int] = Field(
77
+ None, description="Maximum context length supported by the model"
78
+ )
79
+ capabilities: Optional[List[str]] = Field(
80
+ None, description="Model capabilities"
81
+ )
82
+
83
+
84
+ class TogetherListModelsInput(BaseModel):
85
+ """Schema for listing Together AI models input"""
86
+ pass
87
+
88
+
89
+ class TogetherListModelsOutput(BaseModel):
90
+ """Schema for listing Together AI models output"""
91
+
92
+ data: List[TogetherModel] = Field(
93
+ ..., description="List of Together AI models"
94
+ )
95
+ object: Optional[str] = Field(None, description="Object type")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: airtrain
3
- Version: 0.1.40
3
+ Version: 0.1.41
4
4
  Summary: A platform for building and deploying AI agents with structured skills
5
5
  Home-page: https://github.com/rosaboyle/airtrain.dev
6
6
  Author: Dheeraj Pai
@@ -70,6 +70,7 @@ airtrain/integrations/together/credentials.py
70
70
  airtrain/integrations/together/embedding_models_config.py
71
71
  airtrain/integrations/together/image_models_config.py
72
72
  airtrain/integrations/together/image_skill.py
73
+ airtrain/integrations/together/list_models.py
73
74
  airtrain/integrations/together/models.py
74
75
  airtrain/integrations/together/models_config.py
75
76
  airtrain/integrations/together/rerank_models_config.py
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "airtrain"
7
- version = "0.1.40"
7
+ version = "0.1.41"
8
8
  description = "A platform for building and deploying AI agents with structured skills"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.8"
@@ -1,6 +0,0 @@
1
- """Together AI integration module"""
2
-
3
- from .credentials import TogetherAICredentials
4
- from .skills import TogetherAIChatSkill
5
-
6
- __all__ = ["TogetherAICredentials", "TogetherAIChatSkill"]
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes