Skip to content

Commit 636e76e

Browse files
committed
fix: address review feedback — remove stale model names and fix test profile
- README: remove specific model names from Supported APIs and Model Availability sections (per mkozakov review — will go out of date) - tests: default OCI_PROFILE to DEFAULT instead of API_KEY_AUTH
1 parent 9986b12 commit 636e76e

2 files changed

Lines changed: 1136 additions & 0 deletions

File tree

README.md

Lines changed: 105 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,111 @@ for event in response:
5858
print(event.delta.message.content.text, end="")
5959
```
6060

61+
## Oracle Cloud Infrastructure (OCI)
62+
63+
The SDK supports Oracle Cloud Infrastructure (OCI) Generative AI service. First, install the OCI SDK:
64+
65+
```
66+
pip install 'cohere[oci]'
67+
```
68+
69+
Then use the `OciClient` or `OciClientV2`:
70+
71+
```Python
72+
import cohere
73+
74+
# Using OCI config file authentication (default: ~/.oci/config)
75+
co = cohere.OciClient(
76+
oci_region="us-chicago-1",
77+
oci_compartment_id="ocid1.compartment.oc1...",
78+
)
79+
80+
response = co.embed(
81+
model="embed-english-v3.0",
82+
texts=["Hello world"],
83+
input_type="search_document",
84+
)
85+
86+
print(response.embeddings)
87+
```
88+
89+
### OCI Authentication Methods
90+
91+
**1. Config File (Default)**
92+
```Python
93+
co = cohere.OciClient(
94+
oci_region="us-chicago-1",
95+
oci_compartment_id="ocid1.compartment.oc1...",
96+
# Uses ~/.oci/config with DEFAULT profile
97+
)
98+
```
99+
100+
**2. Custom Profile**
101+
```Python
102+
co = cohere.OciClient(
103+
oci_profile="MY_PROFILE",
104+
oci_region="us-chicago-1",
105+
oci_compartment_id="ocid1.compartment.oc1...",
106+
)
107+
```
108+
109+
**3. Session-based Authentication (Security Token)**
110+
```Python
111+
# Works with OCI CLI session tokens
112+
co = cohere.OciClient(
113+
oci_profile="MY_SESSION_PROFILE", # Profile with security_token_file
114+
oci_region="us-chicago-1",
115+
oci_compartment_id="ocid1.compartment.oc1...",
116+
)
117+
```
118+
119+
**4. Direct Credentials**
120+
```Python
121+
co = cohere.OciClient(
122+
oci_user_id="ocid1.user.oc1...",
123+
oci_fingerprint="xx:xx:xx:...",
124+
oci_tenancy_id="ocid1.tenancy.oc1...",
125+
oci_private_key_path="~/.oci/key.pem",
126+
oci_region="us-chicago-1",
127+
oci_compartment_id="ocid1.compartment.oc1...",
128+
)
129+
```
130+
131+
**5. Instance Principal (for OCI Compute instances)**
132+
```Python
133+
co = cohere.OciClient(
134+
auth_type="instance_principal",
135+
oci_region="us-chicago-1",
136+
oci_compartment_id="ocid1.compartment.oc1...",
137+
)
138+
```
139+
140+
### Supported OCI APIs
141+
142+
The OCI client supports the following Cohere APIs:
143+
- **Embed**: Full support for all embedding models
144+
- **Chat**: Full support with both V1 (`OciClient`) and V2 (`OciClientV2`) APIs
145+
- Streaming available via `chat_stream()`
146+
- Supports Command-R and Command-A model families
147+
148+
### OCI Model Availability and Limitations
149+
150+
**Available on OCI On-Demand Inference:**
151+
-**Embed models**: available on OCI Generative AI
152+
-**Chat models**: available via `OciClient` (V1) and `OciClientV2` (V2)
153+
154+
**Not Available on OCI On-Demand Inference:**
155+
-**Generate API**: OCI TEXT_GENERATION models are base models that require fine-tuning before deployment
156+
-**Rerank API**: OCI TEXT_RERANK models are base models that require fine-tuning before deployment
157+
-**Multiple Embedding Types**: OCI on-demand models only support single embedding type per request (cannot request both `float` and `int8` simultaneously)
158+
159+
**Note**: To use Generate or Rerank models on OCI, you need to:
160+
1. Fine-tune the base model using OCI's fine-tuning service
161+
2. Deploy the fine-tuned model to a dedicated endpoint
162+
3. Update your code to use the deployed model endpoint
163+
164+
For the latest model availability, see the [OCI Generative AI documentation](https://docs.oracle.com/en-us/iaas/Content/generative-ai/home.htm).
165+
61166
## Contributing
62167

63168
While we value open-source contributions to this SDK, the code is generated programmatically. Additions made directly would have to be moved over to our generation code, otherwise they would be overwritten upon the next generated release. Feel free to open a PR as a proof of concept, but know that we will not be able to merge it as-is. We suggest opening an issue first to discuss with us!

0 commit comments

Comments
 (0)