openrouter-provider 0.0.5__py3-none-any.whl → 0.0.6__py3-none-any.whl

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.

Potentially problematic release.


This version of openrouter-provider might be problematic. Click here for more details.

@@ -5,6 +5,8 @@ from .LLMs import LLMModel
5
5
  from dotenv import load_dotenv
6
6
  import time
7
7
  import json
8
+ from typing import Iterator
9
+
8
10
 
9
11
  _base_system_prompt = """
10
12
  It's [TIME] today.
@@ -120,4 +122,23 @@ class Chatbot_manager:
120
122
  self._memory.append(reply)
121
123
 
122
124
  return reply
123
-
125
+
126
+ def invoke_stream(self, model: LLMModel, query: Chat_message, tools: list[tool_model]=[], provider:ProviderConfig=None) -> Iterator[str]:
127
+ self._memory.append(query)
128
+ client = OpenRouterProvider()
129
+ generator = client.invoke_stream(
130
+ model=model,
131
+ system_prompt=self._system_prompt,
132
+ querys=self._memory,
133
+ tools=self.tools + tools,
134
+ provider=provider
135
+ )
136
+
137
+ text = ""
138
+ for token in generator:
139
+ text += token.choices[0].delta.content
140
+ yield token.choices[0].delta.content
141
+
142
+ self._memory.append(Chat_message(text=text, role=Role.ai, answerdBy=LLMModel))
143
+
144
+
@@ -4,11 +4,12 @@ from .Tool import tool_model
4
4
  from .LLMs import *
5
5
 
6
6
  from openai import OpenAI
7
+ from openai.types.chat import ChatCompletionChunk
7
8
  from dotenv import load_dotenv
8
- import os
9
+ import os, time
9
10
  from dataclasses import dataclass, field, asdict
10
- from typing import List, Optional, Literal
11
- import json
11
+ from typing import List, Optional, Literal, Iterator
12
+ from pprint import pprint
12
13
 
13
14
  # エラーのみ表示、詳細なトレースバック付き
14
15
  logging.basicConfig(level=logging.ERROR, format="%(asctime)s - %(levelname)s - %(message)s")
@@ -110,3 +111,31 @@ class OpenRouterProvider:
110
111
  except Exception as e:
111
112
  logger.exception(f"An error occurred while invoking the model: {e.__class__.__name__}: {str(e)}")
112
113
  return Chat_message(text="Fail to get response. Please see the error message.", role=Role.ai, raw_response=None)
114
+
115
+ def invoke_stream(self, model: LLMModel, system_prompt: Chat_message, querys: list[Chat_message], tools: list[tool_model] = [], provider: ProviderConfig = None) -> Iterator[ChatCompletionChunk]:
116
+ # chunk example
117
+ # ChatCompletionChunk(id='gen-1746748260-mdKZLTs9QY7MmUxWKb8V', choices=[Choice(delta=ChoiceDelta(content='!', function_call=None, refusal=None, role='assistant', tool_calls=None), finish_reason=None, index=0, logprobs=None, native_finish_reason=None)], created=1746748260, model='openai/gpt-4o-mini', object='chat.completion.chunk', service_tier=None, system_fingerprint='fp_e2f22fdd96', usage=None, provider='OpenAI')
118
+
119
+ # ChatCompletionChunk(id='gen-1746748260-mdKZLTs9QY7MmUxWKb8V', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role='assistant', tool_calls=None), finish_reason='stop', index=0, logprobs=None, native_finish_reason='stop')], created=1746748260, model='openai/gpt-4o-mini', object='chat.completion.chunk', service_tier=None, system_fingerprint='fp_e2f22fdd96', usage=None, provider='OpenAI')
120
+
121
+ # ChatCompletionChunk(id='gen-1746748260-mdKZLTs9QY7MmUxWKb8V', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role='assistant', tool_calls=None), finish_reason=None, index=0, logprobs=None, native_finish_reason=None)], created=1746748260, model='openai/gpt-4o-mini', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=CompletionUsage(completion_tokens=54, prompt_tokens=61, total_tokens=115, completion_tokens_details=CompletionTokensDetails(reasoning_tokens=0), prompt_tokens_details={'cached_tokens': 0}), provider='OpenAI')
122
+
123
+ try:
124
+ messages = self.make_prompt(system_prompt, querys)
125
+
126
+ tool_defs = [tool.tool_definition for tool in tools] if tools else None
127
+ provider_dict = provider.to_dict() if provider else None
128
+
129
+ response = self.client.chat.completions.create(
130
+ model=model.name,
131
+ messages=messages,
132
+ tools=tool_defs,
133
+ extra_body={"provider": provider_dict},
134
+ stream=True
135
+ )
136
+
137
+ return response
138
+
139
+ except Exception as e:
140
+ logger.exception(f"An error occurred while invoking the model: {e.__class__.__name__}: {str(e)}")
141
+ return Chat_message(text="Fail to get response. Please see the error message.", role=Role.ai, raw_response=None)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: openrouter-provider
3
- Version: 0.0.5
3
+ Version: 0.0.6
4
4
  Summary: This is an unofficial wrapper of OpenRouter.
5
5
  Author-email: Keisuke Miyamto <aichiboyhighschool@gmail.com>
6
6
  Requires-Python: >=3.7
@@ -0,0 +1,10 @@
1
+ __init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
+ OpenRouterProvider/Chat_message.py,sha256=lQd8bFp7OHOgeOrcpcVZMdkV2Mb4reUsv5Ixo6WecYY,4424
3
+ OpenRouterProvider/Chatbot_manager.py,sha256=RzRIrCwCV0PqvjvGZQFB6xJlWOZEgsyZdLAgsH01meg,5091
4
+ OpenRouterProvider/LLMs.py,sha256=-0ELd6fqmdDvsdaPIElRsluiK85-Y6USwvQb2b4M8TA,2607
5
+ OpenRouterProvider/OpenRouterProvider.py,sha256=B8ni2KdbVXZVwMhaetZnl6aA25J3s6oMoAPpuuenx1U,6994
6
+ OpenRouterProvider/Tool.py,sha256=QeeWOD2oaYjB9tjF-Jvcjd_G_qSUIuKwFgyh20Ne06I,2010
7
+ openrouter_provider-0.0.6.dist-info/METADATA,sha256=5CKWKftpXU_T-Y78MP98yVmTBhr9cTWeEYBQYXhRhqg,5995
8
+ openrouter_provider-0.0.6.dist-info/WHEEL,sha256=DnLRTWE75wApRYVsjgc6wsVswC54sMSJhAEd4xhDpBk,91
9
+ openrouter_provider-0.0.6.dist-info/top_level.txt,sha256=I5BMEzkQFEnEYTqOY1Ktmnp7r1rrZQyeWdclKyyyHKs,28
10
+ openrouter_provider-0.0.6.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (80.3.1)
2
+ Generator: setuptools (80.4.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -1,10 +0,0 @@
1
- __init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
- OpenRouterProvider/Chat_message.py,sha256=lQd8bFp7OHOgeOrcpcVZMdkV2Mb4reUsv5Ixo6WecYY,4424
3
- OpenRouterProvider/Chatbot_manager.py,sha256=EpLWhxx7xnRa-q7xqP2Ur9dmYb9Mzv_UF6BChwpcbYk,4357
4
- OpenRouterProvider/LLMs.py,sha256=-0ELd6fqmdDvsdaPIElRsluiK85-Y6USwvQb2b4M8TA,2607
5
- OpenRouterProvider/OpenRouterProvider.py,sha256=4k87D5kKNPgRJ-7qMv9oPWY7P2psrNaNOALmyPMuNsw,4397
6
- OpenRouterProvider/Tool.py,sha256=QeeWOD2oaYjB9tjF-Jvcjd_G_qSUIuKwFgyh20Ne06I,2010
7
- openrouter_provider-0.0.5.dist-info/METADATA,sha256=_H9lXm0ohRX57GdvJMJNIyn6pyWblQQTDHOWv7EM6GE,5995
8
- openrouter_provider-0.0.5.dist-info/WHEEL,sha256=0CuiUZ_p9E4cD6NyLD6UG80LBXYyiSYZOKDm5lp32xk,91
9
- openrouter_provider-0.0.5.dist-info/top_level.txt,sha256=I5BMEzkQFEnEYTqOY1Ktmnp7r1rrZQyeWdclKyyyHKs,28
10
- openrouter_provider-0.0.5.dist-info/RECORD,,