euriai 0.3.12__tar.gz → 0.3.13__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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: euriai
3
- Version: 0.3.12
3
+ Version: 0.3.13
4
4
  Summary: Python client for EURI LLM API (euron.one) with CLI, LangChain, and LlamaIndex integration
5
5
  Author: euron.one
6
6
  Author-email: sudhanshu@euron.one
@@ -0,0 +1,69 @@
1
+ import requests
2
+ from typing import List
3
+ from llama_index.core.llms import LLM
4
+ from llama_index.core.base.llms.types import ChatMessage, CompletionResponse, CompletionResponseGen
5
+
6
+
7
+ class EuriaiLlamaIndexLLM(LLM):
8
+ def __init__(
9
+ self,
10
+ api_key: str,
11
+ model: str = "gpt-4.1-nano",
12
+ temperature: float = 0.7,
13
+ max_tokens: int = 1000,
14
+ ):
15
+ self.api_key = api_key
16
+ self.model = model
17
+ self.temperature = temperature
18
+ self.max_tokens = max_tokens
19
+ self.url = "https://api.euron.one/api/v1/chat/completions"
20
+
21
+ @property
22
+ def metadata(self):
23
+ return {
24
+ "context_window": 8000,
25
+ "num_output": self.max_tokens,
26
+ "is_chat_model": True,
27
+ "model_name": self.model,
28
+ }
29
+
30
+ def chat(self, messages: List[ChatMessage], **kwargs) -> CompletionResponse:
31
+ headers = {
32
+ "Content-Type": "application/json",
33
+ "Authorization": f"Bearer {self.api_key}",
34
+ }
35
+ payload = {
36
+ "messages": [{"role": m.role, "content": m.content} for m in messages],
37
+ "model": self.model,
38
+ "temperature": self.temperature,
39
+ "max_tokens": self.max_tokens,
40
+ }
41
+
42
+ response = requests.post(self.url, headers=headers, json=payload)
43
+ response.raise_for_status()
44
+ result = response.json()
45
+ content = result["choices"][0]["message"]["content"]
46
+
47
+ return CompletionResponse(text=content)
48
+
49
+ def complete(self, prompt: str, **kwargs) -> CompletionResponse:
50
+ return self.chat([ChatMessage(role="user", content=prompt)])
51
+
52
+ # Async versions (not supported, so raise or return NotImplementedError)
53
+ async def achat(self, messages: List[ChatMessage], **kwargs) -> CompletionResponse:
54
+ raise NotImplementedError("Async chat not implemented for Euriai.")
55
+
56
+ async def acomplete(self, prompt: str, **kwargs) -> CompletionResponse:
57
+ raise NotImplementedError("Async complete not implemented for Euriai.")
58
+
59
+ def stream_chat(self, messages: List[ChatMessage], **kwargs) -> CompletionResponseGen:
60
+ raise NotImplementedError("Streaming not supported in EuriaiLlamaIndexLLM.")
61
+
62
+ def stream_complete(self, prompt: str, **kwargs) -> CompletionResponseGen:
63
+ raise NotImplementedError("Streaming not supported in EuriaiLlamaIndexLLM.")
64
+
65
+ async def astream_chat(self, messages: List[ChatMessage], **kwargs) -> CompletionResponseGen:
66
+ raise NotImplementedError("Async streaming not supported in EuriaiLlamaIndexLLM.")
67
+
68
+ async def astream_complete(self, prompt: str, **kwargs) -> CompletionResponseGen:
69
+ raise NotImplementedError("Async streaming not supported in EuriaiLlamaIndexLLM.")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: euriai
3
- Version: 0.3.12
3
+ Version: 0.3.13
4
4
  Summary: Python client for EURI LLM API (euron.one) with CLI, LangChain, and LlamaIndex integration
5
5
  Author: euron.one
6
6
  Author-email: sudhanshu@euron.one
@@ -2,7 +2,7 @@ from setuptools import setup, find_packages
2
2
 
3
3
  setup(
4
4
  name="euriai",
5
- version="0.3.12",
5
+ version="0.3.13",
6
6
  description="Python client for EURI LLM API (euron.one) with CLI, LangChain, and LlamaIndex integration",
7
7
  long_description=open("README.md", encoding="utf-8").read(),
8
8
  long_description_content_type="text/markdown",
@@ -1,33 +0,0 @@
1
- import requests
2
- from llama_index.core.llms import LLM
3
- from llama_index.core.base.llms.types import ChatMessage, CompletionResponse
4
- from typing import List
5
-
6
-
7
- class EuriaiLlamaIndexLLM(LLM):
8
- def __init__(self, api_key: str, model: str = "gpt-4.1-nano", temperature: float = 0.7, max_tokens: int = 1000):
9
- self.api_key = api_key
10
- self.model = model
11
- self.temperature = temperature
12
- self.max_tokens = max_tokens
13
- self.url = "https://api.euron.one/api/v1/chat/completions"
14
-
15
- def complete(self, prompt: str, **kwargs) -> CompletionResponse:
16
- return self.chat([ChatMessage(role="user", content=prompt)])
17
-
18
- def chat(self, messages: List[ChatMessage], **kwargs) -> CompletionResponse:
19
- payload = {
20
- "messages": [{"role": m.role, "content": m.content} for m in messages],
21
- "model": self.model,
22
- "temperature": self.temperature,
23
- "max_tokens": self.max_tokens
24
- }
25
- headers = {
26
- "Content-Type": "application/json",
27
- "Authorization": f"Bearer {self.api_key}"
28
- }
29
- response = requests.post(self.url, headers=headers, json=payload)
30
- response.raise_for_status()
31
- result = response.json()
32
- content = result["choices"][0]["message"]["content"]
33
- return CompletionResponse(text=content)
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes