I see .I should have read code better..I did not see run inference is part
of beam rather than the specific example.thanks

On Tue, 1 Apr 2025, 09:02 Radek Stankiewicz, <radosl...@google.com> wrote:

> hey Marco,
> In your case, as your model inference is remote and has a custom handler,
> the only difference is that RunInference transform is adding batching
> before invoking the handler.
> Today this handler is pretty simple but I would imagine that this
> RunInference in the future may introduce certain optimizations, like async
> calls which today you would have to develop yourself in parDo.
>
> Radek
>
>
> On Tue, Apr 1, 2025 at 6:51 AM Sofia’s World <mmistr...@gmail.com> wrote:
>
>> Hi Radek
>>   uhm, how does that differ from creating something like this?
>> am i missing something?
>>
>> Kind regards
>>  Marco
>>
>>
>> class LLMProcessor(beam.DoFn):
>>
>>     def __init__(self, key):
>>         """Initiate the OAI API client."""
>>         self.client = OpenAI(
>>             api_key=key
>>         )
>>
>>     def process(self, element: str):
>>         logging.info(f'Input elements:{element}')
>>
>>         return  self.client.do_some_processing(..)
>>
>>
>> On Thu, Mar 27, 2025 at 8:48 AM Radek Stankiewicz via user <
>> user@beam.apache.org> wrote:
>>
>>> hi Sofia,
>>>
>>> here you have nice example
>>> https://github.com/apache/beam/blob/master/examples/notebooks/beam-ml/custom_remote_inference.ipynb
>>>
>>> where CloudVisionModelHandler is custom code that can invoke any client
>>> library.
>>> you can pass the key as one of the constructors
>>> to CloudVisionModelHandler or you can load it from any preferred secret
>>> managers e.g.
>>>
>>>  def load_model(self):
>>>     """Initiate the OAI API client."""
>>>      client = OpenAI(
>>>
>>>  
>>> api_key=client.access_secret_version(name="OPENAI_API_KEY").data.decode('UTF-8')
>>>      )
>>>      return client
>>>
>>> def run_inference(self, batch, oai_client, inference):
>>>     response = oai_client.responses.create( # your LLM magic goes here.
>>>     [..]
>>>
>>> using env variables won't work here as like you've noticed, beam is
>>> running on multiple machines and you can't set env variables there.
>>>
>>>
>>>
>>>
>>>
>>> On Thu, Mar 27, 2025 at 9:22 AM Sofia’s World <mmistr...@gmail.com>
>>> wrote:
>>>
>>>> Hello
>>>> presumably is possible to kick off a beam process that invokes an LLM>?
>>>> but the only issue i have is how/where do i store the OpenAI key for
>>>> example
>>>>
>>>> in my c current colab/pc setup i have the key configured in my
>>>> environment.. but Beam will run
>>>> on multiple machines... how do i configure the OPENAI_KEY for example?
>>>>
>>>> thanks and regards
>>>>   Marco
>>>>
>>>

Reply via email to