crowdin / crowdin-api-client-java

Java client library for Crowdin API
https://jitpack.io/#crowdin/crowdin-api-client-java
MIT License
81 stars 56 forks source link

AI API support #233

Open andrii-bodnar opened 8 months ago

andrii-bodnar commented 8 months ago

Recently, Crowdin introduced new AI features, including a new set of API endpoints to manage and interact with these AI resources.

The new AI API endpoints should be added to the Crowdin API clients to allow users to programmatically interact with these new features.

References:

ToDo:

Durdush commented 7 months ago

Hi @andrii-bodnar, Could you please assign me this issue.

andrii-bodnar commented 7 months ago

Hi @Durdush, sure, thank you!

andrii-bodnar commented 6 months ago

Hi @Durdush, do you have any updates on this?

Durdush commented 6 months ago

Hi @andrii-bodnar, it is in progress will raise its PR soon.

Durdush commented 6 months ago

Hi @andrii-bodnar, I have some queries related to Create AI Proxy Chat Completion API. a. How we are differentiating which ai provider we are using google gemini or chat gpt or other. Is there any provider id associated with them. b In response object we are using a container object which will have data as well have metadata. can you suggest its implementation like it will be HashMap or ArrayList Container.

andrii-bodnar commented 6 months ago

Hi @Durdush,

a. There is an aiProviderId in the URI to differentiate providers ({protocol}://{host}/api/v2/users/{userId}/ai/providers/{aiProviderId}/chat/completions)

b. It will be the response from the provider itself. So it depends on the provider we are using. We need to pick a generic type here because we don't know what the response would be. It could be any object.

Durdush commented 6 months ago

Hi @andrii-bodnar, Sorry for the delay and appreciate your patience.
Still I have further doubts in Create AI Proxy Chat Completion API. a. For the request body the name of the generic variable is property name* . Can you please clarify this is it property or name. b. For the response body object it says recursive. what does it mean? c. For the metadata which we may receive as response is there any specific class or SDK we use to capture the metadata like ResponseMetaData Class.

andrii-bodnar commented 6 months ago

Hi @Durdush.

a. It could be any property. It depends on the provider. b. Not sure about this (probably some docs bug), basically the response can contain any json object, we have no predefined structure here. c. Please provide more context, not sure if I understand you correctly.

Durdush commented 6 months ago

To Capture the metadata in Response Object we need to add a field over here it could be an Optional list of Objects or any Response MetaData class present in some SDK which extends Response headers. https://docs.oracle.com/middleware/1213/osb/java-api/com/bea/wli/sb/transports/ResponseMetaData.html

Durdush commented 6 months ago

a. It could be any property. It depends on the provider.

it will be of generic type but is it possible to give a variable name dynamic in java(property or name). Or am i understanding it wrong as it will be a generic type of Object named "property" which will have different properties.

andrii-bodnar commented 6 months ago

The property name is an example placeholder. In real life there could be a couple of properties with different names. We don't know exactly. This API will proxy these properties to the provider.