From fa70d55c311e985b5e369cf5df5fcadd059c4f8b Mon Sep 17 00:00:00 2001 From: platform-endpoints Date: Tue, 30 Jul 2024 16:22:50 +0000 Subject: [PATCH] Add spec changes Co-authored-by: billytrend-cohere <144115527+billytrend-cohere@users.noreply.github.com> --- cohere-openapi.yaml | 13580 ++++++++++++++++ snippets/.gitattributes | 9 + snippets/.gitignore | 5 + snippets/curl/chat-post.sh | 13 + snippets/curl/classify-post.sh | 20 + snippets/curl/connector-create.sh | 9 + snippets/curl/connector-delete.sh | 4 + snippets/curl/connector-get.sh | 4 + snippets/curl/connector-patch.sh | 9 + .../connectors-id-oauth-authorize-post.sh | 4 + snippets/curl/connectors-list.sh | 4 + snippets/curl/dataset-delete.sh | 5 + snippets/curl/dataset-get.sh | 4 + snippets/curl/dataset-post.sh | 5 + snippets/curl/dataset-usage-get.sh | 4 + snippets/curl/detokenize-post.sh | 9 + snippets/curl/embed-jobs-cancel.sh | 5 + snippets/curl/embed-jobs-get.sh | 4 + snippets/curl/embed-jobs-post.sh | 9 + snippets/curl/embed-post.sh | 10 + snippets/curl/emebed-jobs-get.sh | 4 + .../curl/finetuning/create-finetuned-model.sh | 14 + .../curl/finetuning/delete-finetuned-model.sh | 4 + .../curl/finetuning/get-finetuned-model.sh | 4 + snippets/curl/finetuning/list-events.sh | 4 + .../curl/finetuning/list-finetuned-models.sh | 4 + .../finetuning/list-training-step-metrics.sh | 4 + .../curl/finetuning/update-finetuned-model.sh | 6 + snippets/curl/generate-post.sh | 8 + snippets/curl/models-list-get.sh | 4 + snippets/curl/rerank-post.sh | 15 + snippets/curl/summarize-post.sh | 8 + snippets/curl/tokenize-post.sh | 9 + snippets/go/chat-post/default/main.go | 42 + snippets/go/chat-post/documents/main.go | 61 + snippets/go/chat-post/stream/main.go | 61 + snippets/go/chat-post/tools/main.go | 50 + snippets/go/classify-post/main.go | 44 + snippets/go/connector-create/main.go | 31 + snippets/go/connector-delete/main.go | 20 + snippets/go/connector-get/main.go | 20 + snippets/go/connector-patch/main.go | 27 + .../main.go | 27 + snippets/go/connectors-list/main.go | 23 + snippets/go/dataset-delete/main.go | 19 + snippets/go/dataset-get/main.go | 20 + snippets/go/dataset-post/main.go | 40 + snippets/go/dataset-usage-get/main.go | 20 + snippets/go/detokenize-post/main.go | 26 + snippets/go/embed-jobs-cancel/main.go | 19 + snippets/go/embed-jobs-get/main.go | 20 + snippets/go/embed-jobs-post/main.go | 27 + snippets/go/embed-post/main.go | 28 + snippets/go/emebed-jobs-get/main.go | 20 + .../finetuning/create-finetuned-model/main.go | 31 + .../finetuning/delete-finetuned-model/main.go | 17 + .../go/finetuning/get-finetuned-model/main.go | 19 + snippets/go/finetuning/list-events/main.go | 23 + .../finetuning/list-finetuned-models/main.go | 19 + .../list-training-step-metrics/main.go | 23 + .../finetuning/update-finetuned-model/main.go | 26 + snippets/go/generate-post/main.go | 44 + snippets/go/models-list-get/main.go | 21 + snippets/go/rerank-post/main.go | 33 + snippets/go/summarize-post/main.go | 26 + snippets/go/tokenize-post/main.go | 27 + snippets/java/.gitattributes | 9 + snippets/java/.gitignore | 5 + snippets/java/app/build.gradle | 74 + .../java/app/src/main/java/ClassifyPost.java | 30 + .../app/src/main/java/ConnectorCreate.java | 16 + .../app/src/main/java/ConnectorDelete.java | 11 + .../java/app/src/main/java/ConnectorGet.java | 13 + .../app/src/main/java/ConnectorPatch.java | 13 + .../java/ConnectorsIdOauthAuthorizePost.java | 14 + .../app/src/main/java/ConnectorsList.java | 13 + .../java/app/src/main/java/DatasetDelete.java | 11 + .../java/app/src/main/java/DatasetGet.java | 13 + .../java/app/src/main/java/DatasetPost.java | 17 + .../app/src/main/java/DatasetUsageGet.java | 13 + .../app/src/main/java/DetokenizePost.java | 18 + .../app/src/main/java/EmbedJobsCancel.java | 10 + .../java/app/src/main/java/EmbedJobsGet.java | 13 + .../java/app/src/main/java/EmbedJobsPost.java | 15 + .../java/app/src/main/java/EmbedPost.java | 17 + .../java/app/src/main/java/EmebedJobsGet.java | 13 + .../java/app/src/main/java/GeneratePost.java | 14 + .../java/app/src/main/java/ModelsListGet.java | 13 + .../java/app/src/main/java/RerankPost.java | 23 + .../java/app/src/main/java/SummarizePost.java | 37 + .../java/app/src/main/java/TokenizePost.java | 14 + .../app/src/main/java/chatpost/Default.java | 36 + .../app/src/main/java/chatpost/Documents.java | 153 + .../app/src/main/java/chatpost/Stream.java | 47 + .../app/src/main/java/chatpost/Tools.java | 80 + .../java/finetuning/CreateFinetunedModel.java | 16 + .../java/finetuning/DeleteFinetunedModel.java | 12 + .../java/finetuning/GetFinetunedModel.java | 15 + .../src/main/java/finetuning/ListEvents.java | 14 + .../java/finetuning/ListFinetunedModels.java | 15 + .../finetuning/ListTrainingStepMetrics.java | 15 + .../java/finetuning/UpdateFinetunedModel.java | 19 + snippets/java/app/src/test/java/AppTest.java | 12 + snippets/java/gradle/libs.versions.toml | 10 + .../java/gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 43462 bytes .../gradle/wrapper/gradle-wrapper.properties | 7 + snippets/java/gradlew | 249 + snippets/java/gradlew.bat | 92 + snippets/java/settings.gradle | 14 + snippets/node/chat-post/default.ts | 22 + snippets/node/chat-post/documents.ts | 35 + snippets/node/chat-post/stream.ts | 26 + snippets/node/chat-post/tools.ts | 40 + snippets/node/classify-post.ts | 25 + snippets/node/connector-create.ts | 15 + snippets/node/connector-delete.ts | 9 + snippets/node/connector-get.ts | 11 + snippets/node/connector-patch.ts | 14 + .../connectors-id-oauth-authorize-post.ts | 13 + snippets/node/connectors-list.ts | 11 + snippets/node/dataset-get.ts | 11 + snippets/node/dataset-post.ts | 14 + snippets/node/dataset-usage-get.ts | 11 + snippets/node/detokenize-post.ts | 14 + snippets/node/embed-jobs-cancel.ts | 11 + snippets/node/embed-jobs-get.ts | 11 + snippets/node/embed-jobs-post.ts | 15 + snippets/node/embed-post.ts | 14 + snippets/node/emebed-jobs-get.ts | 11 + .../node/finetuning/create-finetuned-model.ts | 19 + .../node/finetuning/delete-finetuned-model.ts | 9 + .../node/finetuning/get-finetuned-model.ts | 11 + snippets/node/finetuning/list-events.ts | 11 + .../node/finetuning/list-finetuned-models.ts | 11 + .../finetuning/list-training-step-metrics.ts | 13 + .../node/finetuning/update-finetuned-model.ts | 13 + snippets/node/generate-post.ts | 13 + snippets/node/models-list-get.ts | 11 + snippets/node/rerank-post.ts | 30 + snippets/node/summarize-post.ts | 33 + snippets/node/tokenize-post.ts | 8 + snippets/python-async/chat-post.py | 21 + snippets/python-async/classify-post.py | 36 + snippets/python-async/connector-create.py | 14 + snippets/python-async/connector-delete.py | 10 + snippets/python-async/connector-get.py | 11 + snippets/python-async/connector-patch.py | 13 + .../connectors-id-oauth-authorize-post.py | 13 + snippets/python-async/connectors-list.py | 11 + snippets/python-async/dataset-delete.py | 10 + snippets/python-async/dataset-get.py | 12 + snippets/python-async/dataset-post.py | 21 + snippets/python-async/dataset-usage-get.py | 12 + snippets/python-async/detokenize-post.py | 13 + snippets/python-async/embed-jobs-cancel.py | 8 + snippets/python-async/embed-jobs-get.py | 12 + snippets/python-async/embed-jobs-post.py | 18 + snippets/python-async/embed-post.py | 13 + snippets/python-async/emebed-jobs-get.py | 12 + .../finetuning/create-finetuned-model.py | 27 + .../finetuning/delete-finetuned-model.py | 10 + .../finetuning/get-finetuned-model.py | 11 + .../python-async/finetuning/list-events.py | 11 + .../finetuning/list-finetuned-models.py | 11 + .../finetuning/list-training-step-metrics.py | 11 + .../finetuning/update-finetuned-model.py | 11 + snippets/python-async/generate-post.py | 13 + snippets/python-async/models-list-get.py | 11 + snippets/python-async/rerank-post.py | 24 + snippets/python-async/summarize-post.py | 36 + snippets/python-async/tokenize-post.py | 11 + snippets/python/chat-post.py | 16 + snippets/python/chat-post/default.py | 18 + snippets/python/chat-post/documents.py | 27 + snippets/python/chat-post/stream.py | 20 + snippets/python/chat-post/tools.py | 40 + snippets/python/classify-post.py | 30 + snippets/python/connector-create.py | 8 + snippets/python/connector-delete.py | 4 + snippets/python/connector-get.py | 5 + snippets/python/connector-patch.py | 7 + .../connectors-id-oauth-authorize-post.py | 7 + snippets/python/connectors-list.py | 5 + snippets/python/dataset-delete.py | 6 + snippets/python/dataset-get.py | 8 + snippets/python/dataset-post.py | 15 + snippets/python/dataset-usage-get.py | 8 + snippets/python/detokenize-post.py | 8 + snippets/python/embed-jobs-cancel.py | 6 + snippets/python/embed-jobs-get.py | 8 + snippets/python/embed-jobs-post.py | 13 + snippets/python/embed-post.py | 8 + snippets/python/emebed-jobs-get.py | 8 + .../finetuning/create-finetuned-model.py | 29 + .../finetuning/delete-finetuned-model.py | 4 + .../python/finetuning/get-finetuned-model.py | 5 + snippets/python/finetuning/list-events.py | 5 + .../finetuning/list-finetuned-models.py | 5 + .../finetuning/list-training-step-metrics.py | 6 + .../finetuning/update-finetuned-model.py | 14 + snippets/python/generate-post.py | 8 + snippets/python/models-list-get.py | 5 + snippets/python/rerank-post.py | 19 + snippets/python/summarize-post.py | 31 + snippets/python/tokenize-post.py | 6 + snippets/settings.gradle | 14 + 206 files changed, 17391 insertions(+) create mode 100644 cohere-openapi.yaml create mode 100644 snippets/.gitattributes create mode 100644 snippets/.gitignore create mode 100644 snippets/curl/chat-post.sh create mode 100644 snippets/curl/classify-post.sh create mode 100644 snippets/curl/connector-create.sh create mode 100644 snippets/curl/connector-delete.sh create mode 100644 snippets/curl/connector-get.sh create mode 100644 snippets/curl/connector-patch.sh create mode 100644 snippets/curl/connectors-id-oauth-authorize-post.sh create mode 100644 snippets/curl/connectors-list.sh create mode 100644 snippets/curl/dataset-delete.sh create mode 100644 snippets/curl/dataset-get.sh create mode 100644 snippets/curl/dataset-post.sh create mode 100644 snippets/curl/dataset-usage-get.sh create mode 100644 snippets/curl/detokenize-post.sh create mode 100644 snippets/curl/embed-jobs-cancel.sh create mode 100644 snippets/curl/embed-jobs-get.sh create mode 100644 snippets/curl/embed-jobs-post.sh create mode 100644 snippets/curl/embed-post.sh create mode 100644 snippets/curl/emebed-jobs-get.sh create mode 100644 snippets/curl/finetuning/create-finetuned-model.sh create mode 100644 snippets/curl/finetuning/delete-finetuned-model.sh create mode 100644 snippets/curl/finetuning/get-finetuned-model.sh create mode 100644 snippets/curl/finetuning/list-events.sh create mode 100644 snippets/curl/finetuning/list-finetuned-models.sh create mode 100644 snippets/curl/finetuning/list-training-step-metrics.sh create mode 100644 snippets/curl/finetuning/update-finetuned-model.sh create mode 100644 snippets/curl/generate-post.sh create mode 100644 snippets/curl/models-list-get.sh create mode 100644 snippets/curl/rerank-post.sh create mode 100644 snippets/curl/summarize-post.sh create mode 100644 snippets/curl/tokenize-post.sh create mode 100644 snippets/go/chat-post/default/main.go create mode 100644 snippets/go/chat-post/documents/main.go create mode 100644 snippets/go/chat-post/stream/main.go create mode 100644 snippets/go/chat-post/tools/main.go create mode 100644 snippets/go/classify-post/main.go create mode 100644 snippets/go/connector-create/main.go create mode 100644 snippets/go/connector-delete/main.go create mode 100644 snippets/go/connector-get/main.go create mode 100644 snippets/go/connector-patch/main.go create mode 100644 snippets/go/connectors-id-oauth-authorize-post/main.go create mode 100644 snippets/go/connectors-list/main.go create mode 100644 snippets/go/dataset-delete/main.go create mode 100644 snippets/go/dataset-get/main.go create mode 100644 snippets/go/dataset-post/main.go create mode 100644 snippets/go/dataset-usage-get/main.go create mode 100644 snippets/go/detokenize-post/main.go create mode 100644 snippets/go/embed-jobs-cancel/main.go create mode 100644 snippets/go/embed-jobs-get/main.go create mode 100644 snippets/go/embed-jobs-post/main.go create mode 100644 snippets/go/embed-post/main.go create mode 100644 snippets/go/emebed-jobs-get/main.go create mode 100644 snippets/go/finetuning/create-finetuned-model/main.go create mode 100644 snippets/go/finetuning/delete-finetuned-model/main.go create mode 100644 snippets/go/finetuning/get-finetuned-model/main.go create mode 100644 snippets/go/finetuning/list-events/main.go create mode 100644 snippets/go/finetuning/list-finetuned-models/main.go create mode 100644 snippets/go/finetuning/list-training-step-metrics/main.go create mode 100644 snippets/go/finetuning/update-finetuned-model/main.go create mode 100644 snippets/go/generate-post/main.go create mode 100644 snippets/go/models-list-get/main.go create mode 100644 snippets/go/rerank-post/main.go create mode 100644 snippets/go/summarize-post/main.go create mode 100644 snippets/go/tokenize-post/main.go create mode 100644 snippets/java/.gitattributes create mode 100644 snippets/java/.gitignore create mode 100644 snippets/java/app/build.gradle create mode 100644 snippets/java/app/src/main/java/ClassifyPost.java create mode 100644 snippets/java/app/src/main/java/ConnectorCreate.java create mode 100644 snippets/java/app/src/main/java/ConnectorDelete.java create mode 100644 snippets/java/app/src/main/java/ConnectorGet.java create mode 100644 snippets/java/app/src/main/java/ConnectorPatch.java create mode 100644 snippets/java/app/src/main/java/ConnectorsIdOauthAuthorizePost.java create mode 100644 snippets/java/app/src/main/java/ConnectorsList.java create mode 100644 snippets/java/app/src/main/java/DatasetDelete.java create mode 100644 snippets/java/app/src/main/java/DatasetGet.java create mode 100644 snippets/java/app/src/main/java/DatasetPost.java create mode 100644 snippets/java/app/src/main/java/DatasetUsageGet.java create mode 100644 snippets/java/app/src/main/java/DetokenizePost.java create mode 100644 snippets/java/app/src/main/java/EmbedJobsCancel.java create mode 100644 snippets/java/app/src/main/java/EmbedJobsGet.java create mode 100644 snippets/java/app/src/main/java/EmbedJobsPost.java create mode 100644 snippets/java/app/src/main/java/EmbedPost.java create mode 100644 snippets/java/app/src/main/java/EmebedJobsGet.java create mode 100644 snippets/java/app/src/main/java/GeneratePost.java create mode 100644 snippets/java/app/src/main/java/ModelsListGet.java create mode 100644 snippets/java/app/src/main/java/RerankPost.java create mode 100644 snippets/java/app/src/main/java/SummarizePost.java create mode 100644 snippets/java/app/src/main/java/TokenizePost.java create mode 100644 snippets/java/app/src/main/java/chatpost/Default.java create mode 100644 snippets/java/app/src/main/java/chatpost/Documents.java create mode 100644 snippets/java/app/src/main/java/chatpost/Stream.java create mode 100644 snippets/java/app/src/main/java/chatpost/Tools.java create mode 100644 snippets/java/app/src/main/java/finetuning/CreateFinetunedModel.java create mode 100644 snippets/java/app/src/main/java/finetuning/DeleteFinetunedModel.java create mode 100644 snippets/java/app/src/main/java/finetuning/GetFinetunedModel.java create mode 100644 snippets/java/app/src/main/java/finetuning/ListEvents.java create mode 100644 snippets/java/app/src/main/java/finetuning/ListFinetunedModels.java create mode 100644 snippets/java/app/src/main/java/finetuning/ListTrainingStepMetrics.java create mode 100644 snippets/java/app/src/main/java/finetuning/UpdateFinetunedModel.java create mode 100644 snippets/java/app/src/test/java/AppTest.java create mode 100644 snippets/java/gradle/libs.versions.toml create mode 100644 snippets/java/gradle/wrapper/gradle-wrapper.jar create mode 100644 snippets/java/gradle/wrapper/gradle-wrapper.properties create mode 100755 snippets/java/gradlew create mode 100644 snippets/java/gradlew.bat create mode 100644 snippets/java/settings.gradle create mode 100644 snippets/node/chat-post/default.ts create mode 100644 snippets/node/chat-post/documents.ts create mode 100644 snippets/node/chat-post/stream.ts create mode 100644 snippets/node/chat-post/tools.ts create mode 100644 snippets/node/classify-post.ts create mode 100644 snippets/node/connector-create.ts create mode 100644 snippets/node/connector-delete.ts create mode 100644 snippets/node/connector-get.ts create mode 100644 snippets/node/connector-patch.ts create mode 100644 snippets/node/connectors-id-oauth-authorize-post.ts create mode 100644 snippets/node/connectors-list.ts create mode 100644 snippets/node/dataset-get.ts create mode 100644 snippets/node/dataset-post.ts create mode 100644 snippets/node/dataset-usage-get.ts create mode 100644 snippets/node/detokenize-post.ts create mode 100644 snippets/node/embed-jobs-cancel.ts create mode 100644 snippets/node/embed-jobs-get.ts create mode 100644 snippets/node/embed-jobs-post.ts create mode 100644 snippets/node/embed-post.ts create mode 100644 snippets/node/emebed-jobs-get.ts create mode 100644 snippets/node/finetuning/create-finetuned-model.ts create mode 100644 snippets/node/finetuning/delete-finetuned-model.ts create mode 100644 snippets/node/finetuning/get-finetuned-model.ts create mode 100644 snippets/node/finetuning/list-events.ts create mode 100644 snippets/node/finetuning/list-finetuned-models.ts create mode 100644 snippets/node/finetuning/list-training-step-metrics.ts create mode 100644 snippets/node/finetuning/update-finetuned-model.ts create mode 100644 snippets/node/generate-post.ts create mode 100644 snippets/node/models-list-get.ts create mode 100644 snippets/node/rerank-post.ts create mode 100644 snippets/node/summarize-post.ts create mode 100644 snippets/node/tokenize-post.ts create mode 100644 snippets/python-async/chat-post.py create mode 100644 snippets/python-async/classify-post.py create mode 100644 snippets/python-async/connector-create.py create mode 100644 snippets/python-async/connector-delete.py create mode 100644 snippets/python-async/connector-get.py create mode 100644 snippets/python-async/connector-patch.py create mode 100644 snippets/python-async/connectors-id-oauth-authorize-post.py create mode 100644 snippets/python-async/connectors-list.py create mode 100644 snippets/python-async/dataset-delete.py create mode 100644 snippets/python-async/dataset-get.py create mode 100644 snippets/python-async/dataset-post.py create mode 100644 snippets/python-async/dataset-usage-get.py create mode 100644 snippets/python-async/detokenize-post.py create mode 100644 snippets/python-async/embed-jobs-cancel.py create mode 100644 snippets/python-async/embed-jobs-get.py create mode 100644 snippets/python-async/embed-jobs-post.py create mode 100644 snippets/python-async/embed-post.py create mode 100644 snippets/python-async/emebed-jobs-get.py create mode 100644 snippets/python-async/finetuning/create-finetuned-model.py create mode 100644 snippets/python-async/finetuning/delete-finetuned-model.py create mode 100644 snippets/python-async/finetuning/get-finetuned-model.py create mode 100644 snippets/python-async/finetuning/list-events.py create mode 100644 snippets/python-async/finetuning/list-finetuned-models.py create mode 100644 snippets/python-async/finetuning/list-training-step-metrics.py create mode 100644 snippets/python-async/finetuning/update-finetuned-model.py create mode 100644 snippets/python-async/generate-post.py create mode 100644 snippets/python-async/models-list-get.py create mode 100644 snippets/python-async/rerank-post.py create mode 100644 snippets/python-async/summarize-post.py create mode 100644 snippets/python-async/tokenize-post.py create mode 100644 snippets/python/chat-post.py create mode 100644 snippets/python/chat-post/default.py create mode 100644 snippets/python/chat-post/documents.py create mode 100644 snippets/python/chat-post/stream.py create mode 100644 snippets/python/chat-post/tools.py create mode 100644 snippets/python/classify-post.py create mode 100644 snippets/python/connector-create.py create mode 100644 snippets/python/connector-delete.py create mode 100644 snippets/python/connector-get.py create mode 100644 snippets/python/connector-patch.py create mode 100644 snippets/python/connectors-id-oauth-authorize-post.py create mode 100644 snippets/python/connectors-list.py create mode 100644 snippets/python/dataset-delete.py create mode 100644 snippets/python/dataset-get.py create mode 100644 snippets/python/dataset-post.py create mode 100644 snippets/python/dataset-usage-get.py create mode 100644 snippets/python/detokenize-post.py create mode 100644 snippets/python/embed-jobs-cancel.py create mode 100644 snippets/python/embed-jobs-get.py create mode 100644 snippets/python/embed-jobs-post.py create mode 100644 snippets/python/embed-post.py create mode 100644 snippets/python/emebed-jobs-get.py create mode 100644 snippets/python/finetuning/create-finetuned-model.py create mode 100644 snippets/python/finetuning/delete-finetuned-model.py create mode 100644 snippets/python/finetuning/get-finetuned-model.py create mode 100644 snippets/python/finetuning/list-events.py create mode 100644 snippets/python/finetuning/list-finetuned-models.py create mode 100644 snippets/python/finetuning/list-training-step-metrics.py create mode 100644 snippets/python/finetuning/update-finetuned-model.py create mode 100644 snippets/python/generate-post.py create mode 100644 snippets/python/models-list-get.py create mode 100644 snippets/python/rerank-post.py create mode 100644 snippets/python/summarize-post.py create mode 100644 snippets/python/tokenize-post.py create mode 100644 snippets/settings.gradle diff --git a/cohere-openapi.yaml b/cohere-openapi.yaml new file mode 100644 index 00000000..ee3a84ee --- /dev/null +++ b/cohere-openapi.yaml @@ -0,0 +1,13580 @@ +openapi: 3.1.0 +info: + title: API Reference + version: "1.0" + description: |- + The Cohere Platform is centered around models. + + Each model has a different amount of power (i.e. parameters), to be used for different tasks. + + Cohere also supports finetuning of baseline models to improve performance on downstream tasks or to teach the model large quantities of information which cannot be extracted with few-shot learning or prompt engineering. + summary: Cohere's API + contact: + name: Cohere Developers + url: https://cohere.com/ + email: team@cohere.com + termsOfService: https://cohere.com/terms-of-use + license: + name: proprietary + url: https://cohere.com/terms-of-use +servers: + - url: https://api.cohere.com/v1 + description: production +security: + - bearerAuth: [] +tags: + - name: /datasets + description: Datasets API + - name: /connectors + description: Connectors API + - name: /embed-jobs + description: Embed Jobs API + - name: /finetuning + description: Finetuning API (Beta) +paths: + /chat: + post: + parameters: + - $ref: "#/components/parameters/RequestSource" + x-fern-audiences: + - public + summary: Chat + operationId: chat + x-fern-streaming: + stream-condition: $request.stream + response: + required: + - text + x-fern-type-name: NonStreamedChatResponse + properties: + text: + type: string + x-fern-audiences: + - public + minLength: 1 + description: Contents of the reply generated by the model. + generation_id: + type: string + x-fern-audiences: + - public + format: uuid + description: Unique identifier for the generated reply. Useful for submitting + feedback. + citations: + type: array + x-fern-audiences: + - public + minItems: 0 + description: Inline citations for the generated reply. + items: + $ref: "#/components/schemas/ChatCitation" + documents: + type: array + x-fern-audiences: + - public + minItems: 0 + description: Documents seen by the model when generating the reply. + items: + $ref: "#/components/schemas/ChatDocument" + is_search_required: + type: boolean + x-fern-audiences: + - public + description: Denotes that a search for documents is required during the RAG + flow. + search_queries: + type: array + x-fern-audiences: + - public + description: Generated search queries, meant to be used as part of the RAG flow. + items: + $ref: "#/components/schemas/ChatSearchQuery" + search_results: + type: array + x-fern-audiences: + - public + minItems: 0 + description: Documents retrieved from each of the conducted searches. + items: + $ref: "#/components/schemas/ChatSearchResult" + finish_reason: + x-fern-audiences: + - public + $ref: "#/components/schemas/FinishReason" + tool_calls: + x-fern-audiences: + - public + type: array + items: + $ref: "#/components/schemas/ToolCall" + chat_history: + type: array + x-fern-audiences: + - public + minItems: 0 + items: + $ref: "#/components/schemas/Message" + description: | + A list of previous messages between the user and the model, meant to give the model conversational context for responding to the user's `message`. + meta: + $ref: "#/components/schemas/ApiMeta" + x-fern-audiences: + - public + response-stream: + description: StreamedChatResponse is returned in streaming mode (specified with + `stream=True` in the request). + x-fern-type-name: StreamedChatResponse + oneOf: + - $ref: "#/components/schemas/ChatStreamStartEvent" + - $ref: "#/components/schemas/ChatSearchQueriesGenerationEvent" + - $ref: "#/components/schemas/ChatSearchResultsEvent" + - $ref: "#/components/schemas/ChatTextGenerationEvent" + - $ref: "#/components/schemas/ChatCitationGenerationEvent" + - $ref: "#/components/schemas/ChatToolCallsGenerationEvent" + - $ref: "#/components/schemas/ChatStreamEndEvent" + - $ref: "#/components/schemas/ChatToolCallsChunkEvent" + discriminator: + propertyName: event_type + mapping: + stream-start: "#/components/schemas/ChatStreamStartEvent" + search-queries-generation: "#/components/schemas/ChatSearchQueriesGenerationEvent" + search-results: "#/components/schemas/ChatSearchResultsEvent" + text-generation: "#/components/schemas/ChatTextGenerationEvent" + citation-generation: "#/components/schemas/ChatCitationGenerationEvent" + tool-calls-generation: "#/components/schemas/ChatToolCallsGenerationEvent" + stream-end: "#/components/schemas/ChatStreamEndEvent" + tool-calls-chunk: "#/components/schemas/ChatToolCallsChunkEvent" + x-readme: + samples-languages: + - python + - java + - curl + - node + - go + code-samples: + - language: go + name: Default + install: go get github.com/cohere-ai/cohere-go/v2 + code: > + package main + + + import ( + "context" + "log" + + cohere "github.com/cohere-ai/cohere-go/v2" + client "github.com/cohere-ai/cohere-go/v2/client" + ) + + + func main() { + co := client.NewClient(client.WithToken("<>")) + + resp, err := co.Chat( + context.TODO(), + &cohere.ChatRequest{ + ChatHistory: []*cohere.Message{ + { + Role: "USER", + User: &cohere.ChatMessage{ + Message: "Who discovered gravity?", + }, + }, + { + Role: "CHATBOT", + Chatbot: &cohere.ChatMessage{ + Message: "The man who is widely credited with discovering gravity is Sir Isaac Newton", + }, + }}, + Message: "What year was he born?", + Connectors: []*cohere.ChatConnector{ + {Id: "web-search"}, + }, + }, + ) + + if err != nil { + log.Fatal(err) + } + + log.Printf("%+v", resp) + } + - language: go + name: Documents + install: go get github.com/cohere-ai/cohere-go/v2 + code: > + package main + + + import ( + "context" + "errors" + "io" + "log" + + cohere "github.com/cohere-ai/cohere-go/v2" + client "github.com/cohere-ai/cohere-go/v2/client" + ) + + + func main() { + co := client.NewClient(client.WithToken("<>")) + + resp, err := co.ChatStream( + context.TODO(), + &cohere.ChatStreamRequest{ + ChatHistory: []*cohere.Message{ + { + Role: "USER", + User: &cohere.ChatMessage{ + Message: "Who discovered gravity?", + }, + }, + { + Role: "CHATBOT", + Chatbot: &cohere.ChatMessage{ + Message: "The man who is widely credited with discovering gravity is Sir Isaac Newton", + }, + }}, + Message: "What year was he born?", + Connectors: []*cohere.ChatConnector{ + {Id: "web-search"}, + }, + }, + ) + + if err != nil { + log.Fatal(err) + } + + // Make sure to close the stream when you're done reading. + // This is easily handled with defer. + defer resp.Close() + + for { + message, err := resp.Recv() + + if errors.Is(err, io.EOF) { + // An io.EOF error means the server is done sending messages + // and should be treated as a success. + break + } + + if message.TextGeneration != nil { + log.Printf("%+v", resp) + } + } + + } + - language: go + name: Streaming + install: go get github.com/cohere-ai/cohere-go/v2 + code: > + package main + + + import ( + "context" + "errors" + "io" + "log" + + cohere "github.com/cohere-ai/cohere-go/v2" + client "github.com/cohere-ai/cohere-go/v2/client" + ) + + + func main() { + co := client.NewClient(client.WithToken("<>")) + + resp, err := co.ChatStream( + context.TODO(), + &cohere.ChatStreamRequest{ + ChatHistory: []*cohere.Message{ + { + Role: "USER", + User: &cohere.ChatMessage{ + Message: "Who discovered gravity?", + }, + }, + { + Role: "CHATBOT", + Chatbot: &cohere.ChatMessage{ + Message: "The man who is widely credited with discovering gravity is Sir Isaac Newton", + }, + }}, + Message: "What year was he born?", + Connectors: []*cohere.ChatConnector{ + {Id: "web-search"}, + }, + }, + ) + + if err != nil { + log.Fatal(err) + } + + // Make sure to close the stream when you're done reading. + // This is easily handled with defer. + defer resp.Close() + + for { + message, err := resp.Recv() + + if errors.Is(err, io.EOF) { + // An io.EOF error means the server is done sending messages + // and should be treated as a success. + break + } + + if message.TextGeneration != nil { + log.Printf("%+v", resp) + } + } + + } + - language: go + name: Tools + install: go get github.com/cohere-ai/cohere-go/v2 + code: > + package main + + + import ( + "context" + "log" + + cohere "github.com/cohere-ai/cohere-go/v2" + client "github.com/cohere-ai/cohere-go/v2/client" + ) + + + func main() { + co := client.NewClient(client.WithToken("<>")) + + resp, err := co.Chat( + context.TODO(), + &cohere.ChatRequest{ + Message: "Can you provide a sales summary for 29th September 2023, and also give me some details about the products in the 'Electronics' category, for example their prices and stock levels?", + Tools: []*cohere.Tool{ + { + Name: "query_daily_sales_report", + Description: "Connects to a database to retrieve overall sales volumes and sales information for a given day.", + ParameterDefinitions: map[string]*cohere.ToolParameterDefinitionsValue{ + "day": { + Description: cohere.String("Retrieves sales data for this day, formatted as YYYY-MM-DD."), + Type: "str", + Required: cohere.Bool(true), + }, + }, + }, + { + Name: "query_product_catalog", + Description: "Connects to a a product catalog with information about all the products being sold, including categories, prices, and stock levels.", + ParameterDefinitions: map[string]*cohere.ToolParameterDefinitionsValue{ + "category": { + Description: cohere.String("Retrieves product information data for all products in this category."), + Type: "str", + Required: cohere.Bool(true), + }, + }, + }, + }, + }, + ) + + if err != nil { + log.Fatal(err) + } + + log.Printf("%+v", resp) + } + - language: node + name: Default + install: npm i cohere-ai + code: > + const { CohereClient } = require('cohere-ai'); + + + const cohere = new CohereClient({ + token: '<>', + }); + + + (async () => { + const response = await cohere.chat({ + chatHistory: [ + { role: 'USER', message: 'Who discovered gravity?' }, + { + role: 'CHATBOT', + message: 'The man who is widely credited with discovering gravity is Sir Isaac Newton', + }, + ], + message: 'What year was he born?', + // perform web search before answering the question. You can also use your own custom connector. + connectors: [{ id: 'web-search' }], + }); + + console.log(response); + })(); + - language: node + name: Documents + install: npm i cohere-ai + code: > + const { CohereClient } = require('cohere-ai'); + + + const cohere = new CohereClient({ + token: '<>', + }); + + + (async () => { + const response = await cohere.chat({ + message: 'Who is more popular: Nsync or Backstreet Boys?', + documents: [ + { + title: 'CSPC: Backstreet Boys Popularity Analysis - ChartMasters', + snippet: + '↓ Skip to Main Content\n\nMusic industry – One step closer to being accurate\n\nCSPC: Backstreet Boys Popularity Analysis\n\nHernán Lopez Posted on February 9, 2017 Posted in CSPC 72 Comments Tagged with Backstreet Boys, Boy band\n\nAt one point, Backstreet Boys defined success: massive albums sales across the globe, great singles sales, plenty of chart topping releases, hugely hyped tours and tremendous media coverage.\n\nIt is true that they benefited from extraordinarily good market conditions in all markets. After all, the all-time record year for the music business, as far as revenues in billion dollars are concerned, was actually 1999. That is, back when this five men group was at its peak.', + }, + { + title: 'CSPC: NSYNC Popularity Analysis - ChartMasters', + snippet: + "↓ Skip to Main Content\n\nMusic industry – One step closer to being accurate\n\nCSPC: NSYNC Popularity Analysis\n\nMJD Posted on February 9, 2018 Posted in CSPC 27 Comments Tagged with Boy band, N'Sync\n\nAt the turn of the millennium three teen acts were huge in the US, the Backstreet Boys, Britney Spears and NSYNC. The latter is the only one we haven’t study so far. It took 15 years and Adele to break their record of 2,4 million units sold of No Strings Attached in its first week alone.\n\nIt wasn’t a fluke, as the second fastest selling album of the Soundscan era prior 2015, was also theirs since Celebrity debuted with 1,88 million units sold.", + }, + { + title: 'CSPC: Backstreet Boys Popularity Analysis - ChartMasters', + snippet: + ' 1997, 1998, 2000 and 2001 also rank amongst some of the very best years.\n\nYet the way many music consumers – especially teenagers and young women’s – embraced their output deserves its own chapter. If Jonas Brothers and more recently One Direction reached a great level of popularity during the past decade, the type of success achieved by Backstreet Boys is in a completely different level as they really dominated the business for a few years all over the world, including in some countries that were traditionally hard to penetrate for Western artists.\n\nWe will try to analyze the extent of that hegemony with this new article with final results which will more than surprise many readers.', + }, + { + title: 'CSPC: NSYNC Popularity Analysis - ChartMasters', + snippet: + ' Was the teen group led by Justin Timberlake really that big? Was it only in the US where they found success? Or were they a global phenomenon?\n\nAs usual, I’ll be using the Commensurate Sales to Popularity Concept in order to relevantly gauge their results. This concept will not only bring you sales information for all NSYNC‘s albums, physical and download singles, as well as audio and video streaming, but it will also determine their true popularity. If you are not yet familiar with the CSPC method, the next page explains it with a short video. I fully recommend watching the video before getting into the sales figures.', + }, + ], + }); + + console.log(response); + })(); + - language: node + name: Streaming + install: npm i cohere-ai + code: > + const { CohereClient } = require('cohere-ai'); + + + const cohere = new CohereClient({ + token: '<>', + }); + + + (async () => { + const chatStream = await cohere.chatStream({ + chatHistory: [ + { role: 'USER', message: 'Who discovered gravity?' }, + { + role: 'CHATBOT', + message: 'The man who is widely credited with discovering gravity is Sir Isaac Newton', + }, + ], + message: 'What year was he born?', + // perform web search before answering the question. You can also use your own custom connector. + connectors: [{ id: 'web-search' }], + }); + + for await (const message of chatStream) { + if (message.eventType === 'text-generation') { + process.stdout.write(message); + } + } + })(); + - language: node + name: Tools + install: npm i cohere-ai + code: > + const { CohereClient } = require('cohere-ai'); + + + const cohere = new CohereClient({ + token: '<>', + }); + + + (async () => { + const response = await cohere.chat({ + message: + "Can you provide a sales summary for 29th September 2023, and also give me some details about the products in the 'Electronics' category, for example their prices and stock levels?", + tools: [ + { + name: 'query_daily_sales_report', + description: + 'Connects to a database to retrieve overall sales volumes and sales information for a given day.', + parameterDefinitions: { + day: { + description: 'Retrieves sales data for this day, formatted as YYYY-MM-DD.', + type: 'str', + required: true, + }, + }, + }, + { + name: 'query_product_catalog', + description: + 'Connects to a a product catalog with information about all the products being sold, including categories, prices, and stock levels.', + parameterDefinitions: { + category: { + description: 'Retrieves product information data for all products in this category.', + type: 'str', + required: true, + }, + }, + }, + ], + }); + + console.log(response); + })(); + - language: python + name: Sync + install: python -m pip install cohere --upgrade + code: > + import cohere + + + co = cohere.Client("<>") + + + response = co.chat( + chat_history=[ + {"role": "USER", "message": "Who discovered gravity?"}, + { + "role": "CHATBOT", + "message": "The man who is widely credited with discovering gravity is Sir Isaac Newton", + }, + ], + message="What year was he born?", + # perform web search before answering the question. You can also use your own custom connector. + connectors=[{"id": "web-search"}], + ) + + + print(response) + - language: python + name: Async + install: python -m pip install cohere --upgrade + code: > + import cohere + + import asyncio + + + co = cohere.AsyncClient("<>") + + + + async def main(): + return await co.chat( + chat_history=[ + {"role": "USER", "message": "Who discovered gravity?"}, + { + "role": "CHATBOT", + "message": "The man who is widely credited with discovering gravity is Sir Isaac Newton", + }, + ], + message="What year was he born?", + # perform web search before answering the question. You can also use your own custom connector. + connectors=[{"id": "web-search"}], + ) + + asyncio.run(main()) + - language: python + name: Documents + install: python -m pip install cohere --upgrade + code: > + import cohere + + + co = cohere.Client("<>") + + + response = co.chat( + model="command", + message="Who is more popular: Nsync or Backstreet Boys?", + documents=[ + { + "title": "CSPC: Backstreet Boys Popularity Analysis - ChartMasters", + "snippet": "↓ Skip to Main Content\n\nMusic industry – One step closer to being accurate\n\nCSPC: Backstreet Boys Popularity Analysis\n\nHernán Lopez Posted on February 9, 2017 Posted in CSPC 72 Comments Tagged with Backstreet Boys, Boy band\n\nAt one point, Backstreet Boys defined success: massive albums sales across the globe, great singles sales, plenty of chart topping releases, hugely hyped tours and tremendous media coverage.\n\nIt is true that they benefited from extraordinarily good market conditions in all markets. After all, the all-time record year for the music business, as far as revenues in billion dollars are concerned, was actually 1999. That is, back when this five men group was at its peak." + }, + { + "title": "CSPC: NSYNC Popularity Analysis - ChartMasters", + "snippet": "↓ Skip to Main Content\n\nMusic industry – One step closer to being accurate\n\nCSPC: NSYNC Popularity Analysis\n\nMJD Posted on February 9, 2018 Posted in CSPC 27 Comments Tagged with Boy band, N'Sync\n\nAt the turn of the millennium three teen acts were huge in the US, the Backstreet Boys, Britney Spears and NSYNC. The latter is the only one we haven’t study so far. It took 15 years and Adele to break their record of 2,4 million units sold of No Strings Attached in its first week alone.\n\nIt wasn’t a fluke, as the second fastest selling album of the Soundscan era prior 2015, was also theirs since Celebrity debuted with 1,88 million units sold." + }, + { + "title": "CSPC: Backstreet Boys Popularity Analysis - ChartMasters", + "snippet": " 1997, 1998, 2000 and 2001 also rank amongst some of the very best years.\n\nYet the way many music consumers – especially teenagers and young women’s – embraced their output deserves its own chapter. If Jonas Brothers and more recently One Direction reached a great level of popularity during the past decade, the type of success achieved by Backstreet Boys is in a completely different level as they really dominated the business for a few years all over the world, including in some countries that were traditionally hard to penetrate for Western artists.\n\nWe will try to analyze the extent of that hegemony with this new article with final results which will more than surprise many readers." + }, + { + "title": "CSPC: NSYNC Popularity Analysis - ChartMasters", + "snippet": " Was the teen group led by Justin Timberlake really that big? Was it only in the US where they found success? Or were they a global phenomenon?\n\nAs usual, I’ll be using the Commensurate Sales to Popularity Concept in order to relevantly gauge their results. This concept will not only bring you sales information for all NSYNC‘s albums, physical and download singles, as well as audio and video streaming, but it will also determine their true popularity. If you are not yet familiar with the CSPC method, the next page explains it with a short video. I fully recommend watching the video before getting into the sales figures." + } + ]) + + print(response) + - language: python + name: Streaming + install: python -m pip install cohere --upgrade + code: > + import cohere + + + co = cohere.Client("<>") + + + response = co.chat_stream( + chat_history=[ + {"role": "USER", "message": "Who discovered gravity?"}, + { + "role": "CHATBOT", + "message": "The man who is widely credited with discovering gravity is Sir Isaac Newton", + }, + ], + message="What year was he born?", + # perform web search before answering the question. You can also use your own custom connector. + connectors=[{"id": "web-search"}], + ) + + + for event in response: + if event.event_type == "text-generation": + print(event.text, end='') + - language: python + name: Tools + install: python -m pip install cohere --upgrade + code: > + import cohere + + + co = cohere.Client("<>") + + + # tool descriptions that the model has access to + + tools = [ + { + "name": "query_daily_sales_report", + "description": "Connects to a database to retrieve overall sales volumes and sales information for a given day.", + "parameter_definitions": { + "day": { + "description": "Retrieves sales data for this day, formatted as YYYY-MM-DD.", + "type": "str", + "required": True + } + } + }, + { + "name": "query_product_catalog", + "description": "Connects to a a product catalog with information about all the products being sold, including categories, prices, and stock levels.", + "parameter_definitions": { + "category": { + "description": "Retrieves product information data for all products in this category.", + "type": "str", + "required": True + } + } + } + ] + + + + # user request + + message = "Can you provide a sales summary for 29th September + 2023, and also give me some details about the products in the + 'Electronics' category, for example their prices and stock + levels?" + + + response = co.chat( + message=message, + tools=tools, + ) + + + print(response) + - language: java + name: Default + install: implementation 'com.cohere:cohere-java:1.x.x' + code: > + /* (C)2024 */ + + package chatpost; + + + import com.cohere.api.Cohere; + + import com.cohere.api.requests.ChatRequest; + + import com.cohere.api.types.ChatMessage; + + import com.cohere.api.types.ChatMessageRole; + + import com.cohere.api.types.NonStreamedChatResponse; + + import java.util.List; + + + public class Default { + public static void main(String[] args) { + Cohere cohere = Cohere.builder().token("<>").clientName("snippet").build(); + + NonStreamedChatResponse response = + cohere.chat( + ChatRequest.builder() + .message("What year was he born?") + .chatHistory( + List.of( + ChatMessage.builder() + .role(ChatMessageRole.USER) + .message("Who discovered gravity?") + .build(), + ChatMessage.builder() + .role(ChatMessageRole.CHATBOT) + .message( + "The man who is widely credited" + + " with discovering gravity is" + + " Sir Isaac Newton") + .build())) + .build()); + + System.out.println(response); + } + } + - language: java + name: Documents + install: implementation 'com.cohere:cohere-java:1.x.x' + code: > + /* (C)2024 */ + + package chatpost; + + + import com.cohere.api.Cohere; + + import com.cohere.api.requests.ChatRequest; + + import com.cohere.api.types.NonStreamedChatResponse; + + import java.util.List; + + import java.util.Map; + + + public class Documents { + public static void main(String[] args) { + Cohere cohere = Cohere.builder().token("<>").clientName("snippet").build(); + + NonStreamedChatResponse response = + cohere.chat( + ChatRequest.builder() + .message("What year was he born?") + .documents( + List.of( + Map.of( + "title", + "CSPC: Backstreet Boys Popularity" + + " Analysis - ChartMasters", + "snippet", + "↓ Skip to Main Content\n\n" + + "Music industry – One step" + + " closer to being" + + " accurate\n\n" + + "CSPC: Backstreet Boys" + + " Popularity Analysis\n\n" + + "Hernán Lopez Posted on" + + " February 9, 2017 Posted in" + + " CSPC 72 Comments Tagged" + + " with Backstreet Boys, Boy" + + " band\n\n" + + "At one point, Backstreet" + + " Boys defined success:" + + " massive albums sales across" + + " the globe, great singles" + + " sales, plenty of chart" + + " topping releases, hugely" + + " hyped tours and tremendous" + + " media coverage.\n\n" + + "It is true that they" + + " benefited from" + + " extraordinarily good market" + + " conditions in all markets." + + " After all, the all-time" + + " record year for the music" + + " business, as far as" + + " revenues in billion dollars" + + " are concerned, was actually" + + " 1999. That is, back when" + + " this five men group was at" + + " its peak."), + Map.of( + "title", + "CSPC: NSYNC Popularity Analysis -" + + " ChartMasters", + "snippet", + "↓ Skip to Main Content\n\n" + + "Music industry – One step" + + " closer to being" + + " accurate\n\n" + + "CSPC: NSYNC Popularity" + + " Analysis\n\n" + + "MJD Posted on February 9," + + " 2018 Posted in CSPC 27" + + " Comments Tagged with Boy" + + " band, N'Sync\n\n" + + "At the turn of the" + + " millennium three teen acts" + + " were huge in the US, the" + + " Backstreet Boys, Britney" + + " Spears and NSYNC. The" + + " latter is the only one we" + + " haven’t study so far. It" + + " took 15 years and Adele to" + + " break their record of 2,4" + + " million units sold of No" + + " Strings Attached in its" + + " first week alone.\n\n" + + "It wasn’t a fluke, as the" + + " second fastest selling" + + " album of the Soundscan era" + + " prior 2015, was also theirs" + + " since Celebrity debuted" + + " with 1,88 million units" + + " sold."), + Map.of( + "title", + "CSPC: Backstreet Boys Popularity" + + " Analysis - ChartMasters", + "snippet", + " 1997, 1998, 2000 and 2001 also" + + " rank amongst some of the" + + " very best years.\n\n" + + "Yet the way many music" + + " consumers – especially" + + " teenagers and young women’s" + + " – embraced their output" + + " deserves its own chapter." + + " If Jonas Brothers and more" + + " recently One Direction" + + " reached a great level of" + + " popularity during the past" + + " decade, the type of success" + + " achieved by Backstreet Boys" + + " is in a completely" + + " different level as they" + + " really dominated the" + + " business for a few years" + + " all over the world," + + " including in some countries" + + " that were traditionally" + + " hard to penetrate for" + + " Western artists.\n\n" + + "We will try to analyze the" + + " extent of that hegemony" + + " with this new article with" + + " final results which will" + + " more than surprise many" + + " readers."), + Map.of( + "title", + "CSPC: NSYNC Popularity Analysis -" + + " ChartMasters", + "snippet", + " Was the teen group led by Justin" + + " Timberlake really that big? Was it" + + " only in the US where they found" + + " success? Or were they a global" + + " phenomenon?\n\n" + + "As usual, I’ll be using the" + + " Commensurate Sales to Popularity" + + " Concept in order to relevantly" + + " gauge their results. This concept" + + " will not only bring you sales" + + " information for all NSYNC‘s albums," + + " physical and download singles, as" + + " well as audio and video streaming," + + " but it will also determine their" + + " true popularity. If you are not yet" + + " familiar with the CSPC method, the" + + " next page explains it with a short" + + " video. I fully recommend watching" + + " the video before getting into the" + + " sales figures."))) + .build()); + + System.out.println(response); + } + } + - language: java + name: Streaming + install: implementation 'com.cohere:cohere-java:1.x.x' + code: > + /* (C)2024 */ + + package chatpost; + + + import com.cohere.api.Cohere; + + import com.cohere.api.requests.ChatStreamRequest; + + import com.cohere.api.types.ChatMessage; + + import com.cohere.api.types.ChatMessageRole; + + import com.cohere.api.types.ChatTextGenerationEvent; + + import com.cohere.api.types.StreamedChatResponse; + + import java.util.List; + + + public class Stream { + public static void main(String[] args) { + Cohere cohere = Cohere.builder().token("<>").clientName("snippet").build(); + + Iterable response = + cohere.chatStream( + ChatStreamRequest.builder() + .message("What year was he born?") + .chatHistory( + List.of( + ChatMessage.builder() + .role(ChatMessageRole.USER) + .message("Who discovered gravity?") + .build(), + ChatMessage.builder() + .role(ChatMessageRole.CHATBOT) + .message( + "The man who is widely credited" + + " with discovering gravity is" + + " Sir Isaac Newton") + .build())) + .build()); + + for (StreamedChatResponse chatResponse : response) { + if (chatResponse.isTextGeneration()) { + System.out.println( + chatResponse + .getTextGeneration() + .map(ChatTextGenerationEvent::getText) + .orElse("")); + } + } + + System.out.println(response); + } + } + - language: java + name: Tools + install: implementation 'com.cohere:cohere-java:1.x.x' + code: > + /* (C)2024 */ + + package chatpost; + + + import com.cohere.api.Cohere; + + import com.cohere.api.requests.ChatRequest; + + import com.cohere.api.types.NonStreamedChatResponse; + + import com.cohere.api.types.Tool; + + import com.cohere.api.types.ToolParameterDefinitionsValue; + + import java.util.List; + + import java.util.Map; + + + public class Tools { + public static void main(String[] args) { + Cohere cohere = Cohere.builder().token("<>").clientName("snippet").build(); + + NonStreamedChatResponse response = + cohere.chat( + ChatRequest.builder() + .message( + "Can you provide a sales summary for 29th September 2023," + + " and also give me some details about the products in" + + " the 'Electronics' category, for example their" + + " prices and stock levels?") + .tools( + List.of( + Tool.builder() + .name("query_daily_sales_report") + .description( + "Connects to a database to retrieve" + + " overall sales volumes and" + + " sales information for a" + + " given day.") + .parameterDefinitions( + Map.of( + "day", + ToolParameterDefinitionsValue + .builder() + .type("str") + .description( + "Retrieves" + + " sales" + + " data" + + " for this" + + " day," + + " formatted" + + " as YYYY-MM-DD.") + .required(true) + .build())) + .build(), + Tool.builder() + .name("query_product_catalog") + .description( + "Connects to a a product catalog" + + " with information about all" + + " the products being sold," + + " including categories," + + " prices, and stock levels.") + .parameterDefinitions( + Map.of( + "category", + ToolParameterDefinitionsValue + .builder() + .type("str") + .description( + "Retrieves" + + " product" + + " information" + + " data" + + " for all" + + " products" + + " in this" + + " category.") + .required(true) + .build())) + .build())) + .build()); + + System.out.println(response); + } + } + - language: curl + name: cURL + code: >- + curl --request POST \ + --url https://api.cohere.com/v1/chat \ + --header 'accept: application/json' \ + --header 'content-type: application/json' \ + --header "Authorization: bearer $CO_API_KEY" \ + --data '{ + "chat_history": [ + {"role": "USER", "message": "Who discovered gravity?"}, + {"role": "CHATBOT", "message": "The man who is widely credited with discovering gravity is Sir Isaac Newton"} + ], + "message": "What year was he born?", + "connectors": [{"id": "web-search"}] + }' + description: | + Generates a text response to a user message. + To learn how to use the Chat API with Streaming and RAG follow our [Text Generation guides](https://docs.cohere.com/docs/chat-api). + requestBody: + content: + application/json: + schema: + type: object + x-fern-audiences: + - public + x-examples: + Chat: + value: + message: Can you give me a global market overview of solar panels? + temperature: 0.3 + stream: false + chat_history: + - role: User + message: Hi! + - role: Chatbot + message: How can I help you today? + prompt_truncation: OFF + Chat with web search: + value: + message: Can you give me a global market overview of solar panels? + temperature: 0.3 + stream: false + chat_history: [] + connectors: + - id: web-search + prompt_truncation: AUTO + Chat with connector: + value: + message: How do I expense a meal? + stream: false + connectors: + - id: custom-connector-id + prompt_truncation: AUTO + required: + - message + properties: + message: + type: string + x-fern-audiences: + - public + description: | + Text input for the model to respond to. + Compatible Deployments: Cohere Platform, Azure, AWS Sagemaker/Bedrock, Private Deployments + model: + type: string + x-fern-audiences: + - public + description: | + Defaults to `command-r-plus`. + + The name of a compatible [Cohere model](https://docs.cohere.com/docs/models) or the ID of a [fine-tuned](https://docs.cohere.com/docs/chat-fine-tuning) model. + Compatible Deployments: Cohere Platform, Private Deployments + stream: + description: | + Defaults to `false`. + + When `true`, the response will be a JSON stream of events. The final event will contain the complete response, and will have an `event_type` of `"stream-end"`. + + Streaming is beneficial for user interfaces that render the contents of the response piece by piece, as it gets generated. + Compatible Deployments: Cohere Platform, Azure, AWS Sagemaker/Bedrock, Private Deployments + type: boolean + x-fern-audiences: + - public + preamble: + description: | + When specified, the default Cohere preamble will be replaced with the provided one. Preambles are a part of the prompt used to adjust the model's overall behavior and conversation style, and use the `SYSTEM` role. + + The `SYSTEM` role is also used for the contents of the optional `chat_history=` parameter. When used with the `chat_history=` parameter it adds content throughout a conversation. Conversely, when used with the `preamble=` parameter it adds content at the start of the conversation only. + Compatible Deployments: Cohere Platform, Azure, AWS Sagemaker/Bedrock, Private Deployments + type: string + x-fern-audiences: + - public + chat_history: + type: array + x-fern-audiences: + - public + minItems: 0 + items: + $ref: "#/components/schemas/Message" + description: | + A list of previous messages between the user and the model, giving the model conversational context for responding to the user's `message`. + + Each item represents a single message in the chat history, excluding the current user turn. It has two properties: `role` and `message`. The `role` identifies the sender (`CHATBOT`, `SYSTEM`, or `USER`), while the `message` contains the text content. + + The chat_history parameter should not be used for `SYSTEM` messages in most cases. Instead, to add a `SYSTEM` role message at the beginning of a conversation, the `preamble` parameter should be used. + Compatible Deployments: Cohere Platform, Azure, AWS Sagemaker/Bedrock, Private Deployments + conversation_id: + type: string + x-fern-audiences: + - public + description: | + An alternative to `chat_history`. + + Providing a `conversation_id` creates or resumes a persisted conversation with the specified ID. The ID can be any non empty string. + Compatible Deployments: Cohere Platform + prompt_truncation: + type: string + x-fern-audiences: + - public + enum: + - OFF + - AUTO + - AUTO_PRESERVE_ORDER + description: | + Defaults to `AUTO` when `connectors` are specified and `OFF` in all other cases. + + Dictates how the prompt will be constructed. + + With `prompt_truncation` set to "AUTO", some elements from `chat_history` and `documents` will be dropped in an attempt to construct a prompt that fits within the model's context length limit. During this process the order of the documents and chat history will be changed and ranked by relevance. + + With `prompt_truncation` set to "AUTO_PRESERVE_ORDER", some elements from `chat_history` and `documents` will be dropped in an attempt to construct a prompt that fits within the model's context length limit. During this process the order of the documents and chat history will be preserved as they are inputted into the API. + + With `prompt_truncation` set to "OFF", no elements will be dropped. If the sum of the inputs exceeds the model's context length limit, a `TooManyTokens` error will be returned. + Compatible Deployments: Cohere Platform Only AUTO_PRESERVE_ORDER: Azure, AWS Sagemaker/Bedrock, Private Deployments + connectors: + type: array + x-fern-audiences: + - public + minItems: 0 + items: + $ref: "#/components/schemas/ChatConnector" + description: | + Accepts `{"id": "web-search"}`, and/or the `"id"` for a custom [connector](https://docs.cohere.com/docs/connectors), if you've [created](https://docs.cohere.com/docs/creating-and-deploying-a-connector) one. + + When specified, the model's reply will be enriched with information found by querying each of the connectors (RAG). + Compatible Deployments: Cohere Platform + search_queries_only: + type: boolean + x-fern-audiences: + - public + description: | + Defaults to `false`. + + When `true`, the response will only contain a list of generated search queries, but no search will take place, and no reply from the model to the user's `message` will be generated. + Compatible Deployments: Cohere Platform, Azure, AWS Sagemaker/Bedrock, Private Deployments + documents: + description: | + A list of relevant documents that the model can cite to generate a more accurate reply. Each document is a string-string dictionary. + + Example: + `[ + { "title": "Tall penguins", "text": "Emperor penguins are the tallest." }, + { "title": "Penguin habitats", "text": "Emperor penguins only live in Antarctica." }, + ]` + + Keys and values from each document will be serialized to a string and passed to the model. The resulting generation will include citations that reference some of these documents. + + Some suggested keys are "text", "author", and "date". For better generation quality, it is recommended to keep the total word count of the strings in the dictionary to under 300 words. + + An `id` field (string) can be optionally supplied to identify the document in the citations. This field will not be passed to the model. + + An `_excludes` field (array of strings) can be optionally supplied to omit some key-value pairs from being shown to the model. The omitted fields will still show up in the citation object. The "_excludes" field will not be passed to the model. + + See ['Document Mode'](https://docs.cohere.com/docs/retrieval-augmented-generation-rag#document-mode) in the guide for more information. + Compatible Deployments: Cohere Platform, Azure, AWS Sagemaker/Bedrock, Private Deployments + type: array + x-fern-audiences: + - public + items: + $ref: "#/components/schemas/ChatDocument" + citation_quality: + type: string + x-fern-audiences: + - public + description: | + Defaults to `"accurate"`. + + Dictates the approach taken to generating citations as part of the RAG flow by allowing the user to specify whether they want `"accurate"` results, `"fast"` results or no results. + Compatible Deployments: Cohere Platform, Azure, AWS Sagemaker/Bedrock, Private Deployments + enum: + - fast + - accurate + - off + temperature: + type: number + x-fern-audiences: + - public + format: float + minimum: 0 + maximum: 1 + description: | + Defaults to `0.3`. + + A non-negative float that tunes the degree of randomness in generation. Lower temperatures mean less random generations, and higher temperatures mean more random generations. + + Randomness can be further maximized by increasing the value of the `p` parameter. + Compatible Deployments: Cohere Platform, Azure, AWS Sagemaker/Bedrock, Private Deployments + max_tokens: + type: integer + x-fern-audiences: + - public + description: | + The maximum number of tokens the model will generate as part of the response. Note: Setting a low value may result in incomplete generations. + Compatible Deployments: Cohere Platform, Azure, AWS Sagemaker/Bedrock, Private Deployments + writeOnly: true + max_input_tokens: + type: integer + x-fern-audiences: + - public + description: | + The maximum number of input tokens to send to the model. If not specified, `max_input_tokens` is the model's context length limit minus a small buffer. + + Input will be truncated according to the `prompt_truncation` parameter. + Compatible Deployments: Cohere Platform + writeOnly: true + k: + type: integer + x-fern-audiences: + - public + description: | + Ensures only the top `k` most likely tokens are considered for generation at each step. + Defaults to `0`, min value of `0`, max value of `500`. + Compatible Deployments: Cohere Platform, Azure, AWS Sagemaker/Bedrock, Private Deployments + writeOnly: true + default: 0 + minimum: 0 + maximum: 500 + p: + type: number + x-fern-audiences: + - public + description: | + Ensures that only the most likely tokens, with total probability mass of `p`, are considered for generation at each step. If both `k` and `p` are enabled, `p` acts after `k`. + Defaults to `0.75`. min value of `0.01`, max value of `0.99`. + Compatible Deployments: Cohere Platform, Azure, AWS Sagemaker/Bedrock, Private Deployments + writeOnly: true + default: 0.75 + minimum: 0.01 + maximum: 0.99 + seed: + x-fern-audiences: + - public + minimum: 0 + maximum: 18446744073709552000 + type: integer + description: | + If specified, the backend will make a best effort to sample tokens + deterministically, such that repeated requests with the same + seed and parameters should return the same result. However, + determinism cannot be totally guaranteed. + Compatible Deployments: Cohere Platform, Azure, AWS Sagemaker/Bedrock, Private Deployments + stop_sequences: + x-fern-audiences: + - public + writeOnly: true + type: array + items: + type: string + description: | + A list of up to 5 strings that the model will use to stop generation. If the model generates a string that matches any of the strings in the list, it will stop generating tokens and return the generated text up to that point not including the stop sequence. + Compatible Deployments: Cohere Platform, Azure, AWS Sagemaker/Bedrock, Private Deployments + frequency_penalty: + type: number + x-fern-audiences: + - public + description: | + Defaults to `0.0`, min value of `0.0`, max value of `1.0`. + + Used to reduce repetitiveness of generated tokens. The higher the value, the stronger a penalty is applied to previously present tokens, proportional to how many times they have already appeared in the prompt or prior generation. + Compatible Deployments: Cohere Platform, Azure, AWS Sagemaker/Bedrock, Private Deployments + writeOnly: true + presence_penalty: + type: number + x-fern-audiences: + - public + description: | + Defaults to `0.0`, min value of `0.0`, max value of `1.0`. + + Used to reduce repetitiveness of generated tokens. Similar to `frequency_penalty`, except that this penalty is applied equally to all tokens that have already appeared, regardless of their exact frequencies. + Compatible Deployments: Cohere Platform, Azure, AWS Sagemaker/Bedrock, Private Deployments + writeOnly: true + tools: + x-fern-audiences: + - public + description: | + A list of available tools (functions) that the model may suggest invoking before producing a text response. + + When `tools` is passed (without `tool_results`), the `text` field in the response will be `""` and the `tool_calls` field in the response will be populated with a list of tool calls that need to be made. If no calls need to be made, the `tool_calls` array will be empty. + Compatible Deployments: Cohere Platform, Azure, AWS Sagemaker/Bedrock, Private Deployments + type: array + items: + $ref: "#/components/schemas/Tool" + minItems: 0 + tool_results: + x-fern-audiences: + - public + description: | + A list of results from invoking tools recommended by the model in the previous chat turn. Results are used to produce a text response and will be referenced in citations. When using `tool_results`, `tools` must be passed as well. + Each tool_result contains information about how it was invoked, as well as a list of outputs in the form of dictionaries. + + **Note**: `outputs` must be a list of objects. If your tool returns a single object (eg `{"status": 200}`), make sure to wrap it in a list. + ``` + tool_results = [ + { + "call": { + "name": , + "parameters": { + : + } + }, + "outputs": [{ + : + }] + }, + ... + ] + ``` + **Note**: Chat calls with `tool_results` should not be included in the Chat history to avoid duplication of the message text. + Compatible Deployments: Cohere Platform, Azure, AWS Sagemaker/Bedrock, Private Deployments + type: array + minItems: 0 + items: + $ref: "#/components/schemas/ToolResult" + force_single_step: + x-fern-audiences: + - public + type: boolean + description: Forces the chat to be single step. Defaults to `false`. + response_format: + x-fern-audiences: + - public + $ref: "#/components/schemas/ResponseFormat" + responses: + "200": + description: OK + content: + application/json: + schema: + oneOf: + - $ref: "#/components/schemas/NonStreamedChatResponse" + - $ref: "#/components/schemas/StreamedChatResponse" + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "422": + $ref: "#/components/responses/UnprocessableEntity" + "429": + $ref: "#/components/responses/RateLimit" + "498": + $ref: "#/components/responses/InvalidToken" + "499": + $ref: "#/components/responses/RequestCancelled" + "500": + $ref: "#/components/responses/InternalServerError" + "501": + $ref: "#/components/responses/NotImplemented" + "503": + $ref: "#/components/responses/ServiceUnavailable" + "504": + $ref: "#/components/responses/GatewayTimeout" + /generate: + post: + x-fern-audiences: + - public + summary: Generate + operationId: generate + x-fern-streaming: + stream-condition: $request.stream + response: + type: object + x-fern-type-name: Generation + required: + - id + - generations + properties: + id: + type: string + x-fern-audiences: + - public + prompt: + type: string + x-fern-audiences: + - public + description: Prompt used for generations. + generations: + type: array + x-fern-audiences: + - public + description: List of generated results + items: + type: object + x-fern-audiences: + - public + $ref: "#/components/schemas/SingleGeneration" + meta: + $ref: "#/components/schemas/ApiMeta" + x-fern-audiences: + - public + response-stream: + description: Response in content type stream when `stream` is `true` in the + request parameters. Generation tokens are streamed with the + GenerationStream response. The final response is of type + GenerationFinalResponse. + x-fern-type-name: GenerateStreamedResponse + oneOf: + - $ref: "#/components/schemas/GenerateStreamText" + - $ref: "#/components/schemas/GenerateStreamEnd" + - $ref: "#/components/schemas/GenerateStreamError" + discriminator: + propertyName: event_type + mapping: + text-generation: "#/components/schemas/GenerateStreamText" + stream-end: "#/components/schemas/GenerateStreamEnd" + stream-error: "#/components/schemas/GenerateStreamError" + parameters: + - $ref: "#/components/parameters/RequestSource" + x-readme: + samples-languages: + - python + - java + - curl + - node + - go + code-samples: + - language: go + name: Cohere Go SDK + install: go get github.com/cohere-ai/cohere-go/v2 + code: | + package main + + import ( + "context" + "errors" + "io" + "log" + + cohere "github.com/cohere-ai/cohere-go/v2" + client "github.com/cohere-ai/cohere-go/v2/client" + ) + + func main() { + co := client.NewClient(client.WithToken("<>")) + + resp, err := co.GenerateStream( + context.TODO(), + &cohere.GenerateStreamRequest{ + Prompt: "Please explain to me how LLMs work", + }, + ) + + if err != nil { + log.Fatal(err) + } + + // Make sure to close the stream when you're done reading. + // This is easily handled with defer. + defer resp.Close() + + for { + message, err := resp.Recv() + + if errors.Is(err, io.EOF) { + // An io.EOF error means the server is done sending messages + // and should be treated as a success. + break + } + + if message.TextGeneration != nil { + log.Printf("%+v", resp) + } + } + } + - language: node + name: Cohere TypeScript SDK + install: npm i cohere-ai + code: | + const { CohereClient } = require('cohere-ai'); + + const cohere = new CohereClient({ + token: '<>', + }); + + (async () => { + const generate = await cohere.generate({ + prompt: 'Please explain to me how LLMs work', + }); + + console.log(generate); + })(); + - language: python + name: Sync + install: python -m pip install cohere --upgrade + code: | + import cohere + + co = cohere.Client("<>") + + response = co.generate( + prompt="Please explain to me how LLMs work", + ) + print(response) + - language: python + name: Async + install: python -m pip install cohere --upgrade + code: | + import cohere + import asyncio + + co = cohere.AsyncClient("<>") + + + async def main(): + response = await co.generate( + prompt="Please explain to me how LLMs work", + ) + print(response) + + asyncio.run(main()) + - language: java + name: Cohere java SDK + install: implementation 'com.cohere:cohere-java:1.0.4' + code: > + import com.cohere.api.Cohere; + + import com.cohere.api.requests.GenerateRequest; + + import com.cohere.api.types.Generation; + + + + public class GeneratePost { + public static void main(String[] args) { + Cohere cohere = Cohere.builder().token("<>").clientName("snippet").build(); + + Generation response = cohere.generate(GenerateRequest.builder().prompt("Please explain to me how LLMs work").build()); + + System.out.println(response); + } + } + - language: curl + name: cURL + code: |- + curl --request POST \ + --url https://api.cohere.com/v1/generate \ + --header 'accept: application/json' \ + --header 'content-type: application/json' \ + --header "Authorization: bearer $CO_API_KEY" \ + --data '{ + "prompt": "Please explain to me how LLMs work" + }' + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/Generation" + application/stream+json: + schema: + $ref: "#/components/schemas/GenerateStreamedResponse" + headers: + X-API-Warning: + schema: + type: string + x-fern-audiences: + - public + description: Warning description for incorrect usage of the API + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "422": + $ref: "#/components/responses/UnprocessableEntity" + "429": + $ref: "#/components/responses/RateLimit" + "498": + $ref: "#/components/responses/InvalidToken" + "499": + $ref: "#/components/responses/RequestCancelled" + "500": + $ref: "#/components/responses/InternalServerError" + "501": + $ref: "#/components/responses/NotImplemented" + "503": + $ref: "#/components/responses/ServiceUnavailable" + "504": + $ref: "#/components/responses/GatewayTimeout" + description: | + > 🚧 Warning + > + > This API is marked as "Legacy" and is no longer maintained. Follow the [migration guide](/docs/migrating-from-cogenerate-to-cochat) to start using the Chat API. + + Generates realistic text conditioned on a given input. + requestBody: + content: + application/json: + schema: + type: object + x-fern-audiences: + - public + x-examples: + Example: + prompt: Please explain to me how LLMs work + max_tokens: 50 + temperature: 1 + k: 0 + p: 0.75 + properties: + prompt: + type: string + x-fern-audiences: + - public + example: Please explain to me how LLMs work + description: | + The input text that serves as the starting point for generating the response. + Note: The prompt will be pre-processed and modified before reaching the model. + writeOnly: true + model: + type: string + x-fern-audiences: + - public + description: |- + The identifier of the model to generate with. Currently available models are `command` (default), `command-nightly` (experimental), `command-light`, and `command-light-nightly` (experimental). + Smaller, "light" models are faster, while larger models will perform better. [Custom models](/docs/training-custom-models) can also be supplied with their full ID. + writeOnly: true + num_generations: + type: integer + x-fern-audiences: + - public + description: | + The maximum number of generations that will be returned. Defaults to `1`, min value of `1`, max value of `5`. + writeOnly: true + stream: + type: boolean + x-fern-audiences: + - public + description: | + When `true`, the response will be a JSON stream of events. Streaming is beneficial for user interfaces that render the contents of the response piece by piece, as it gets generated. + + The final event will contain the complete response, and will contain an `is_finished` field set to `true`. The event will also contain a `finish_reason`, which can be one of the following: + - `COMPLETE` - the model sent back a finished reply + - `MAX_TOKENS` - the reply was cut off because the model reached the maximum number of tokens for its context length + - `ERROR` - something went wrong when generating the reply + - `ERROR_TOXIC` - the model generated a reply that was deemed toxic + max_tokens: + type: integer + x-fern-audiences: + - public + description: | + The maximum number of tokens the model will generate as part of the response. Note: Setting a low value may result in incomplete generations. + + This parameter is off by default, and if it's not specified, the model will continue generating until it emits an EOS completion token. See [BPE Tokens](/bpe-tokens-wiki) for more details. + + Can only be set to `0` if `return_likelihoods` is set to `ALL` to get the likelihood of the prompt. + writeOnly: true + truncate: + type: string + x-fern-audiences: + - public + default: END + enum: + - NONE + - START + - END + description: |- + One of `NONE|START|END` to specify how the API will handle inputs longer than the maximum token length. + + Passing `START` will discard the start of the input. `END` will discard the end of the input. In both cases, input is discarded until the remaining input is exactly the maximum input token length for the model. + + If `NONE` is selected, when the input exceeds the maximum input token length an error will be returned. + writeOnly: true + temperature: + type: number + x-fern-audiences: + - public + description: | + A non-negative float that tunes the degree of randomness in generation. Lower temperatures mean less random generations. See [Temperature](/temperature-wiki) for more details. + Defaults to `0.75`, min value of `0.0`, max value of `5.0`. + writeOnly: true + seed: + x-fern-audiences: + - public + minimum: 0 + maximum: 18446744073709552000 + type: integer + description: | + If specified, the backend will make a best effort to sample tokens + deterministically, such that repeated requests with the same + seed and parameters should return the same result. However, + determinism cannot be totally guaranteed. + Compatible Deployments: Cohere Platform, Azure, AWS Sagemaker/Bedrock, Private Deployments + preset: + type: string + x-fern-audiences: + - public + example: my-preset-a58sbd + description: | + Identifier of a custom preset. A preset is a combination of parameters, such as prompt, temperature etc. You can create presets in the [playground](https://dashboard.cohere.com/playground/generate). + When a preset is specified, the `prompt` parameter becomes optional, and any included parameters will override the preset's parameters. + writeOnly: true + end_sequences: + type: array + x-fern-audiences: + - public + description: The generated text will be cut at the beginning of the earliest + occurrence of an end sequence. The sequence will be excluded + from the text. + items: + type: string + x-fern-audiences: + - public + writeOnly: true + stop_sequences: + type: array + x-fern-audiences: + - public + description: The generated text will be cut at the end of the earliest + occurrence of a stop sequence. The sequence will be included + the text. + items: + type: string + x-fern-audiences: + - public + writeOnly: true + k: + type: integer + x-fern-audiences: + - public + description: | + Ensures only the top `k` most likely tokens are considered for generation at each step. + Defaults to `0`, min value of `0`, max value of `500`. + writeOnly: true + p: + type: number + x-fern-audiences: + - public + description: | + Ensures that only the most likely tokens, with total probability mass of `p`, are considered for generation at each step. If both `k` and `p` are enabled, `p` acts after `k`. + Defaults to `0.75`. min value of `0.01`, max value of `0.99`. + writeOnly: true + frequency_penalty: + type: number + x-fern-audiences: + - public + description: | + Used to reduce repetitiveness of generated tokens. The higher the value, the stronger a penalty is applied to previously present tokens, proportional to how many times they have already appeared in the prompt or prior generation. + + Using `frequency_penalty` in combination with `presence_penalty` is not supported on newer models. + writeOnly: true + presence_penalty: + type: number + x-fern-audiences: + - public + description: | + Defaults to `0.0`, min value of `0.0`, max value of `1.0`. + + Can be used to reduce repetitiveness of generated tokens. Similar to `frequency_penalty`, except that this penalty is applied equally to all tokens that have already appeared, regardless of their exact frequencies. + + Using `frequency_penalty` in combination with `presence_penalty` is not supported on newer models. + writeOnly: true + return_likelihoods: + type: string + x-fern-audiences: + - public + description: |- + One of `GENERATION|ALL|NONE` to specify how and if the token likelihoods are returned with the response. Defaults to `NONE`. + + If `GENERATION` is selected, the token likelihoods will only be provided for generated text. + + If `ALL` is selected, the token likelihoods will be provided both for the prompt and the generated text. + enum: + - GENERATION + - ALL + - NONE + default: NONE + raw_prompting: + type: boolean + x-fern-audiences: + - public + description: When enabled, the user's prompt will be sent to the model without + any pre-processing. + required: + - prompt + writeOnly: true + examples: + Example: + value: + prompt: Please explain to me how LLMs work + description: "" + /embed: + post: + x-fern-audiences: + - public + summary: Embed + operationId: embed + parameters: + - $ref: "#/components/parameters/RequestSource" + x-readme: + samples-languages: + - python + - java + - curl + - node + - go + code-samples: + - language: go + name: Cohere Go SDK + install: go get github.com/cohere-ai/cohere-go/v2 + code: | + package main + + import ( + "context" + "log" + + cohere "github.com/cohere-ai/cohere-go/v2" + client "github.com/cohere-ai/cohere-go/v2/client" + ) + + func main() { + co := client.NewClient(client.WithToken("<>")) + + resp, err := co.Embed( + context.TODO(), + &cohere.EmbedRequest{ + Texts: []string{"hello", "goodbye"}, + Model: cohere.String("embed-english-v3.0"), + InputType: cohere.EmbedInputTypeSearchDocument.Ptr(), + }, + ) + + if err != nil { + log.Fatal(err) + } + + log.Printf("%+v", resp) + } + - language: node + name: Cohere TypeScript SDK + install: npm i cohere-ai + code: | + const { CohereClient } = require('cohere-ai'); + + const cohere = new CohereClient({ + token: '<>', + }); + + (async () => { + const embed = await cohere.embed({ + texts: ['hello', 'goodbye'], + model: 'embed-english-v3.0', + inputType: 'classification', + }); + console.log(embed); + })(); + - language: python + name: Sync + install: python -m pip install cohere --upgrade + code: > + import cohere + + + co = cohere.Client("<>") + + + response = co.embed( + texts=["hello", "goodbye"], model="embed-english-v3.0", input_type="classification" + ) + + print(response) + - language: python + name: Async + install: python -m pip install cohere --upgrade + code: > + import cohere + + import asyncio + + + co = cohere.AsyncClient("<>") + + + + async def main(): + response = await co.embed( + texts=["hello", "goodbye"], model="embed-english-v3.0", input_type="classification" + ) + print(response) + + asyncio.run(main()) + - language: java + name: Cohere java SDK + install: implementation 'com.cohere:cohere-java:1.0.4' + code: > + import com.cohere.api.Cohere; + + import com.cohere.api.requests.EmbedRequest; + + import com.cohere.api.types.EmbedInputType; + + import com.cohere.api.types.EmbedResponse; + + + import java.util.List; + + + + public class EmbedPost { + public static void main(String[] args) { + Cohere cohere = Cohere.builder().token("<>").clientName("snippet").build(); + + EmbedResponse response = cohere.embed(EmbedRequest.builder().texts(List.of("hello", "goodbye")).model("embed-english-v3.0").inputType(EmbedInputType.CLASSIFICATION).build()); + + System.out.println(response); + } + } + - language: curl + name: cURL + code: |- + curl --request POST \ + --url https://api.cohere.com/v1/embed \ + --header 'accept: application/json' \ + --header 'content-type: application/json' \ + --header "Authorization: bearer $CO_API_KEY" \ + --data '{ + "model": "embed-english-v3.0", + "texts": ["hello", "goodbye"], + "input_type": "classification" + }' + responses: + "200": + description: OK + content: + application/json: + schema: + oneOf: + - $ref: "#/components/schemas/EmbedFloatsResponse" + - $ref: "#/components/schemas/EmbedByTypeResponse" + discriminator: + propertyName: response_type + mapping: + embeddings_floats: "#/components/schemas/EmbedFloatsResponse" + embeddings_by_type: "#/components/schemas/EmbedByTypeResponse" + headers: + X-API-Warning: + schema: + type: string + x-fern-audiences: + - public + description: Warning description for incorrect usage of the API + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "422": + $ref: "#/components/responses/UnprocessableEntity" + "429": + $ref: "#/components/responses/RateLimit" + "498": + $ref: "#/components/responses/InvalidToken" + "499": + $ref: "#/components/responses/RequestCancelled" + "500": + $ref: "#/components/responses/InternalServerError" + "501": + $ref: "#/components/responses/NotImplemented" + "503": + $ref: "#/components/responses/ServiceUnavailable" + "504": + $ref: "#/components/responses/GatewayTimeout" + description: |- + This endpoint returns text embeddings. An embedding is a list of floating point numbers that captures semantic information about the text that it represents. + + Embeddings can be used to create text classifiers as well as empower semantic search. To learn more about embeddings, see the embedding page. + + If you want to learn more how to use the embedding model, have a look at the [Semantic Search Guide](/docs/semantic-search). + requestBody: + content: + application/json: + schema: + type: object + x-fern-audiences: + - public + properties: + texts: + type: array + x-fern-audiences: + - public + minItems: 1 + maxItems: 96 + description: An array of strings for the model to embed. Maximum number of texts + per call is `96`. We recommend reducing the length of each + text to be under `512` tokens for optimal quality. + items: + type: string + x-fern-audiences: + - public + writeOnly: true + writeOnly: true + model: + type: string + x-fern-audiences: + - public + description: |- + Defaults to embed-english-v2.0 + + The identifier of the model. Smaller "light" models are faster, while larger models will perform better. [Custom models](/docs/training-custom-models) can also be supplied with their full ID. + + Available models and corresponding embedding dimensions: + + * `embed-english-v3.0` 1024 + * `embed-multilingual-v3.0` 1024 + * `embed-english-light-v3.0` 384 + * `embed-multilingual-light-v3.0` 384 + + * `embed-english-v2.0` 4096 + * `embed-english-light-v2.0` 1024 + * `embed-multilingual-v2.0` 768 + writeOnly: true + input_type: + x-fern-audiences: + - public + $ref: "#/components/schemas/EmbedInputType" + embedding_types: + type: array + x-fern-audiences: + - public + items: + $ref: "#/components/schemas/EmbeddingType" + description: |- + Specifies the types of embeddings you want to get back. Not required and default is None, which returns the Embed Floats response type. Can be one or more of the following types. + + * `"float"`: Use this when you want to get back the default float embeddings. Valid for all models. + * `"int8"`: Use this when you want to get back signed int8 embeddings. Valid for only v3 models. + * `"uint8"`: Use this when you want to get back unsigned int8 embeddings. Valid for only v3 models. + * `"binary"`: Use this when you want to get back signed binary embeddings. Valid for only v3 models. + * `"ubinary"`: Use this when you want to get back unsigned binary embeddings. Valid for only v3 models. + writeOnly: true + truncate: + type: string + x-fern-audiences: + - public + default: END + enum: + - NONE + - START + - END + description: |- + One of `NONE|START|END` to specify how the API will handle inputs longer than the maximum token length. + + Passing `START` will discard the start of the input. `END` will discard the end of the input. In both cases, input is discarded until the remaining input is exactly the maximum input token length for the model. + + If `NONE` is selected, when the input exceeds the maximum input token length an error will be returned. + writeOnly: true + required: + - texts + examples: + Example: + value: + texts: + - hello + - goodbye + description: "" + /embed-jobs: + post: + x-fern-audiences: + - public + parameters: + - $ref: "#/components/parameters/RequestSource" + summary: Create an Embed Job + operationId: create-embed-job + tags: + - /embed-jobs + x-fern-sdk-group-name: embed-jobs + x-fern-sdk-method-name: create + x-readme: + samples-languages: + - python + - java + - python + - java + - node + - curl + - go + code-samples: + - language: go + name: Cohere Go SDK + install: go get github.com/cohere-ai/cohere-go/v2 + code: | + package main + + import ( + "context" + "log" + + cohere "github.com/cohere-ai/cohere-go/v2" + client "github.com/cohere-ai/cohere-go/v2/client" + ) + + func main() { + co := client.NewClient(client.WithToken("<>")) + + resp, err := co.EmbedJobs.Create( + context.TODO(), + &cohere.CreateEmbedJobRequest{ + DatasetId: "dataset_id", + InputType: cohere.EmbedInputTypeSearchDocument, + }, + ) + + if err != nil { + log.Fatal(err) + } + + log.Printf("%+v", resp) + } + - language: python + name: Sync + install: python -m pip install cohere --upgrade + code: > + import cohere + + + co = cohere.Client("<>") + + + # start an embed job + + response = co.embed_jobs.create( + dataset_id=ds.id, input_type="search_document", model="embed-english-v3.0" + ) + + + # poll the server until the job is complete + + response = co.wait(job) + + + print(response) + - language: python + name: Async + install: python -m pip install cohere --upgrade + code: > + import cohere + + import asyncio + + + co = cohere.AsyncClient("<>") + + + + async def main(): + # start an embed job + response = await co.embed_jobs.create( + dataset_id=ds.id, input_type="search_document", model="embed-english-v3.0" + ) + + # poll the server until the job is complete + response = await co.wait(job) + + print(response) + + asyncio.run(main()) + - language: java + name: Cohere java SDK + install: implementation 'com.cohere:cohere-java:1.0.4' + code: > + import com.cohere.api.Cohere; + + import + com.cohere.api.resources.embedjobs.requests.CreateEmbedJobRequest; + + import com.cohere.api.types.CreateEmbedJobResponse; + + import com.cohere.api.types.EmbedInputType; + + + + public class EmbedJobsPost { + public static void main(String[] args) { + Cohere cohere = Cohere.builder().token("<>").clientName("snippet").build(); + + CreateEmbedJobResponse response = cohere.embedJobs().create(CreateEmbedJobRequest.builder().model("embed-english-v3.0").datasetId("ds.id").inputType(EmbedInputType.SEARCH_DOCUMENT).build()); + + System.out.println(response); + } + } + - language: node + name: Cohere TypeScript SDK + install: npm i cohere-ai + code: | + const { CohereClient } = require('cohere-ai'); + + const cohere = new CohereClient({ + token: '<>', + }); + + (async () => { + const embedJob = await cohere.embedJobs.create({ + datasetId: 'my-dataset', + inputType: 'search_document', + model: 'embed-english-v3.0', + }); + + console.log(embedJob); + })(); + - language: curl + name: cURL + code: |- + curl --request POST \ + --url https://api.cohere.com/v1/embed-jobs \ + --header 'accept: application/json' \ + --header 'content-type: application/json' \ + --header "Authorization: bearer $CO_API_KEY" \ + --data '{ + "model": "embed-english-v3.0", + "dataset_id": "my-dataset" + }' + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/CreateEmbedJobResponse" + headers: + X-API-Warning: + schema: + type: string + x-fern-audiences: + - public + description: Warning description for incorrect usage of the API + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "422": + $ref: "#/components/responses/UnprocessableEntity" + "429": + $ref: "#/components/responses/RateLimit" + "498": + $ref: "#/components/responses/InvalidToken" + "499": + $ref: "#/components/responses/RequestCancelled" + "500": + $ref: "#/components/responses/InternalServerError" + "501": + $ref: "#/components/responses/NotImplemented" + "503": + $ref: "#/components/responses/ServiceUnavailable" + "504": + $ref: "#/components/responses/GatewayTimeout" + description: This API launches an async Embed job for a + [Dataset](https://docs.cohere.com/docs/datasets) of type `embed-input`. + The result of a completed embed job is new Dataset of type + `embed-output`, which contains the original text entries and the + corresponding embeddings. + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/CreateEmbedJobRequest" + get: + x-fern-audiences: + - public + parameters: + - $ref: "#/components/parameters/RequestSource" + summary: List Embed Jobs + operationId: list-embed-jobs + tags: + - /embed-jobs + x-fern-sdk-group-name: embed-jobs + x-fern-sdk-method-name: list + x-readme: + samples-languages: + - python + - java + - python + - java + - node + - curl + - go + code-samples: + - language: go + name: Cohere Go SDK + install: go get github.com/cohere-ai/cohere-go/v2 + code: | + package main + + import ( + "context" + "log" + + client "github.com/cohere-ai/cohere-go/v2/client" + ) + + func main() { + co := client.NewClient(client.WithToken("<>")) + + resp, err := co.EmbedJobs.Get(context.TODO(), "embed_job_id") + + if err != nil { + log.Fatal(err) + } + + log.Printf("%+v", resp) + } + - language: python + name: Sync + install: python -m pip install cohere --upgrade + code: | + import cohere + + co = cohere.Client("<>") + + # list embed jobs + response = co.embed_jobs.list() + + print(response) + - language: python + name: Async + install: python -m pip install cohere --upgrade + code: | + import cohere + import asyncio + + co = cohere.AsyncClient("<>") + + + async def main(): + response = await co.embed_jobs.list() + + print(response) + + asyncio.run(main()) + - language: java + name: Cohere java SDK + install: implementation 'com.cohere:cohere-java:1.0.4' + code: > + import com.cohere.api.Cohere; + + import com.cohere.api.types.ListEmbedJobResponse; + + + + public class EmbedJobsGet { + public static void main(String[] args) { + Cohere cohere = Cohere.builder().token("<>").clientName("snippet").build(); + + ListEmbedJobResponse response = cohere.embedJobs().list(); + + System.out.println(response); + } + } + - language: node + name: Cohere TypeScript SDK + install: npm i cohere-ai + code: | + const { CohereClient } = require('cohere-ai'); + + const cohere = new CohereClient({ + token: '<>', + }); + + (async () => { + const embedJobs = await cohere.embedJobs.list(); + + console.log(embedJobs); + })(); + - language: curl + name: cURL + code: |- + curl --request GET \ + --url https://api.cohere.com/v1/embed-jobs \ + --header 'accept: application/json' \ + --header "Authorization: bearer $CO_API_KEY" + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/ListEmbedJobResponse" + headers: + X-API-Warning: + schema: + type: string + x-fern-audiences: + - public + description: Warning description for incorrect usage of the API + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "422": + $ref: "#/components/responses/UnprocessableEntity" + "429": + $ref: "#/components/responses/RateLimit" + "498": + $ref: "#/components/responses/InvalidToken" + "499": + $ref: "#/components/responses/RequestCancelled" + "500": + $ref: "#/components/responses/InternalServerError" + "501": + $ref: "#/components/responses/NotImplemented" + "503": + $ref: "#/components/responses/ServiceUnavailable" + "504": + $ref: "#/components/responses/GatewayTimeout" + description: The list embed job endpoint allows users to view all embed jobs + history for that specific user. + "/embed-jobs/{id}": + get: + x-fern-audiences: + - public + parameters: + - name: id + in: path + required: true + description: The ID of the embed job to retrieve. + schema: + type: string + x-fern-audiences: + - public + - $ref: "#/components/parameters/RequestSource" + summary: Fetch an Embed Job + operationId: get-embed-job + tags: + - /embed-jobs + x-fern-sdk-group-name: embed-jobs + x-fern-sdk-method-name: get + x-readme: + samples-languages: + - python + - java + - python + - java + - node + - curl + - go + code-samples: + - language: go + name: Cohere Go SDK + install: go get github.com/cohere-ai/cohere-go/v2 + code: | + package main + + import ( + "context" + "log" + + client "github.com/cohere-ai/cohere-go/v2/client" + ) + + func main() { + co := client.NewClient(client.WithToken("<>")) + + resp, err := co.EmbedJobs.List(context.TODO()) + + if err != nil { + log.Fatal(err) + } + + log.Printf("%+v", resp) + } + - language: python + name: Sync + install: python -m pip install cohere --upgrade + code: | + import cohere + + co = cohere.Client("<>") + + # get embed job + response = co.embed_jobs.get("job_id") + + print(response) + - language: python + name: Async + install: python -m pip install cohere --upgrade + code: | + import cohere + import asyncio + + co = cohere.AsyncClient("<>") + + + async def main(): + response = await co.embed_jobs.get("job_id") + + print(response) + + asyncio.run(main()) + - language: java + name: Cohere java SDK + install: implementation 'com.cohere:cohere-java:1.0.4' + code: > + import com.cohere.api.Cohere; + + import com.cohere.api.types.ListEmbedJobResponse; + + + + public class EmbedJobsGet { + public static void main(String[] args) { + Cohere cohere = Cohere.builder().token("<>").clientName("snippet").build(); + + ListEmbedJobResponse response = cohere.embedJobs().list(); + + System.out.println(response); + } + } + - language: node + name: Cohere TypeScript SDK + install: npm i cohere-ai + code: | + const { CohereClient } = require('cohere-ai'); + + const cohere = new CohereClient({ + token: '<>', + }); + + (async () => { + const embedJob = await cohere.embedJobs.get('job_id'); + + console.log(embedJob); + })(); + - language: curl + name: cURL + code: |- + curl --request GET \ + --url https://api.cohere.com/v1/embed-jobs/id \ + --header 'accept: application/json' \ + --header "Authorization: bearer $CO_API_KEY" + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/EmbedJob" + headers: + X-API-Warning: + schema: + type: string + x-fern-audiences: + - public + description: Warning message for potentially incorrect usage of the API + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "422": + $ref: "#/components/responses/UnprocessableEntity" + "429": + $ref: "#/components/responses/RateLimit" + "498": + $ref: "#/components/responses/InvalidToken" + "499": + $ref: "#/components/responses/RequestCancelled" + "500": + $ref: "#/components/responses/InternalServerError" + "501": + $ref: "#/components/responses/NotImplemented" + "503": + $ref: "#/components/responses/ServiceUnavailable" + "504": + $ref: "#/components/responses/GatewayTimeout" + description: This API retrieves the details about an embed job started by the + same user. + "/embed-jobs/{id}/cancel": + post: + x-fern-audiences: + - public + parameters: + - name: id + in: path + required: true + description: The ID of the embed job to cancel. + schema: + type: string + x-fern-audiences: + - public + - $ref: "#/components/parameters/RequestSource" + summary: Cancel an Embed Job + operationId: cancel-embed-job + tags: + - /embed-jobs + x-fern-sdk-group-name: embed-jobs + x-fern-sdk-method-name: cancel + x-readme: + samples-languages: + - python + - java + - python + - java + - node + - curl + - go + code-samples: + - language: go + name: Cohere Go SDK + install: go get github.com/cohere-ai/cohere-go/v2 + code: | + package main + + import ( + "context" + "log" + + client "github.com/cohere-ai/cohere-go/v2/client" + ) + + func main() { + co := client.NewClient(client.WithToken("<>")) + + err := co.EmbedJobs.Cancel(context.TODO(), "embed_job_id") + + if err != nil { + log.Fatal(err) + } + + } + - language: python + name: Sync + install: python -m pip install cohere --upgrade + code: | + import cohere + + co = cohere.Client("<>") + + # cancel an embed job + co.embed_jobs.cancel("job_id") + - language: python + name: Async + install: python -m pip install cohere --upgrade + code: | + import cohere + import asyncio + + co = cohere.AsyncClient("<>") + + + async def main(): + await co.embed_jobs.cancel("job_id") + - language: java + name: Cohere java SDK + install: implementation 'com.cohere:cohere-java:1.0.4' + code: > + import com.cohere.api.Cohere; + + + + public class EmbedJobsCancel { + public static void main(String[] args) { + Cohere cohere = Cohere.builder().token("<>").clientName("snippet").build(); + + cohere.embedJobs().cancel("job_id"); + } + } + - language: node + name: Cohere TypeScript SDK + install: npm i cohere-ai + code: | + const { CohereClient } = require('cohere-ai'); + + const cohere = new CohereClient({ + token: '<>', + }); + + (async () => { + const embedJob = await cohere.embedJobs.cancel('job_id'); + + console.log(embedJob); + })(); + - language: curl + name: cURL + code: |- + curl --request POST \ + --url https://api.cohere.com/v1/embed-jobs/id/cancel \ + --header 'accept: application/json' \ + --header 'content-type: application/json' \ + --header "Authorization: bearer $CO_API_KEY" + responses: + "200": + description: OK + headers: + X-API-Warning: + schema: + type: string + x-fern-audiences: + - public + description: Warning description for incorrect usage of the API + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "422": + $ref: "#/components/responses/UnprocessableEntity" + "429": + $ref: "#/components/responses/RateLimit" + "498": + $ref: "#/components/responses/InvalidToken" + "499": + $ref: "#/components/responses/RequestCancelled" + "500": + $ref: "#/components/responses/InternalServerError" + "501": + $ref: "#/components/responses/NotImplemented" + "503": + $ref: "#/components/responses/ServiceUnavailable" + "504": + $ref: "#/components/responses/GatewayTimeout" + description: This API allows users to cancel an active embed job. Once invoked, + the embedding process will be terminated, and users will be charged for + the embeddings processed up to the cancellation point. It's important to + note that partial results will not be available to users after + cancellation. + /rerank: + post: + x-fern-audiences: + - public + summary: Rerank + operationId: rerank + parameters: + - $ref: "#/components/parameters/RequestSource" + responses: + "200": + description: OK + content: + application/json: + schema: + type: object + x-fern-audiences: + - public + properties: + id: + type: string + x-fern-audiences: + - public + results: + type: array + x-fern-audiences: + - public + description: An ordered list of ranked documents + items: + type: object + x-fern-audiences: + - public + properties: + document: + type: object + x-fern-audiences: + - public + description: If `return_documents` is set as `false` this will return none, if + `true` it will return the documents passed in + properties: + text: + type: string + x-fern-audiences: + - public + description: The text of the document to rerank + required: + - text + index: + type: integer + x-fern-audiences: + - public + description: Corresponds to the index in the original list of documents to which + the ranked document belongs. (i.e. if the first + value in the `results` object has an `index` value + of 3, it means in the list of documents passed in, + the document at `index=3` had the highest relevance) + relevance_score: + type: number + x-fern-audiences: + - public + format: float + description: Relevance scores are normalized to be in the range `[0, 1]`. Scores + close to `1` indicate a high relevance to the query, + and scores closer to `0` indicate low relevance. It + is not accurate to assume a score of 0.9 means the + document is 2x more relevant than a document with a + score of 0.45 + readOnly: true + required: + - index + - relevance_score + meta: + $ref: "#/components/schemas/ApiMeta" + x-fern-audiences: + - public + required: + - results + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "422": + $ref: "#/components/responses/UnprocessableEntity" + "429": + $ref: "#/components/responses/RateLimit" + "498": + $ref: "#/components/responses/InvalidToken" + "499": + $ref: "#/components/responses/RequestCancelled" + "500": + $ref: "#/components/responses/InternalServerError" + "501": + $ref: "#/components/responses/NotImplemented" + "503": + $ref: "#/components/responses/ServiceUnavailable" + "504": + $ref: "#/components/responses/GatewayTimeout" + requestBody: + content: + application/json: + schema: + type: object + x-fern-audiences: + - public + properties: + model: + type: string + x-fern-audiences: + - public + description: "The identifier of the model to use, one of : + `rerank-english-v3.0`, `rerank-multilingual-v3.0`, + `rerank-english-v2.0`, `rerank-multilingual-v2.0`" + query: + type: string + x-fern-audiences: + - public + description: The search query + documents: + type: array + x-fern-audiences: + - public + description: |- + A list of document objects or strings to rerank. + If a document is provided the text fields is required and all other fields will be preserved in the response. + + The total max chunks (length of documents * max_chunks_per_doc) must be less than 10000. + + We recommend a maximum of 1,000 documents for optimal endpoint performance. + items: + oneOf: + - type: string + - $ref: "#/components/schemas/RerankDocument" + top_n: + type: integer + x-fern-audiences: + - public + minimum: 1 + description: The number of most relevant documents or indices to return, + defaults to the length of the documents + rank_fields: + type: array + x-fern-audiences: + - public + items: + type: string + x-fern-audiences: + - public + description: If a JSON object is provided, you can specify which keys you would + like to have considered for reranking. The model will rerank + based on order of the fields passed in (i.e. + rank_fields=['title','author','text'] will rerank using the + values in title, author, text sequentially. If the length + of title, author, and text exceeds the context length of the + model, the chunking will not re-consider earlier fields). If + not provided, the model will use the default text field for + ranking. + return_documents: + type: boolean + x-fern-audiences: + - public + default: false + description: |- + - If false, returns results without the doc text - the api will return a list of {index, relevance score} where index is inferred from the list passed into the request. + - If true, returns results with the doc text passed in - the api will return an ordered list of {index, text, relevance score} where index + text refers to the list passed into the request. + max_chunks_per_doc: + type: integer + x-fern-audiences: + - public + description: The maximum number of chunks to produce internally from a document + default: 10 + required: + - query + - documents + examples: + Example: + value: + model: rerank-english-v3.0 + query: What is the capital of the United States? + documents: + - Carson City is the capital city of the American state of + Nevada. + - The Commonwealth of the Northern Mariana Islands is a + group of islands in the Pacific Ocean. Its capital is + Saipan. + - Washington, D.C. (also known as simply Washington or D.C., + and officially as the District of Columbia) is the capital + of the United States. It is a federal district. + - Capital punishment (the death penalty) has existed in the + United States since beforethe United States was a country. + As of 2017, capital punishment is legal in 30 of the 50 + states. + description: "" + description: This endpoint takes in a query and a list of texts and produces an + ordered array with each text assigned a relevance score. + x-readme: + samples-languages: + - python + - java + - curl + - node + - go + code-samples: + - language: go + name: Cohere Go SDK + install: go get github.com/cohere-ai/cohere-go/v2 + code: > + package main + + + import ( + "context" + "log" + + cohere "github.com/cohere-ai/cohere-go/v2" + client "github.com/cohere-ai/cohere-go/v2/client" + ) + + + func main() { + co := client.NewClient(client.WithToken("<>")) + + resp, err := co.Rerank( + context.TODO(), + &cohere.RerankRequest{ + Query: "What is the capital of the United States?", + Documents: []*cohere.RerankRequestDocumentsItem{ + {String: "Carson City is the capital city of the American state of Nevada."}, + {String: "The Commonwealth of the Northern Mariana Islands is a group of islands in the Pacific Ocean. Its capital is Saipan."}, + {String: "Capitalization or capitalisation in English grammar is the use of a capital letter at the start of a word. English usage varies from capitalization in other languages."}, + {String: "Washington, D.C. (also known as simply Washington or D.C., and officially as the District of Columbia) is the capital of the United States. It is a federal district."}, + }, + Model: cohere.String("rerank-english-v3.0"), + }, + ) + + if err != nil { + log.Fatal(err) + } + + log.Printf("%+v", resp) + } + - language: node + name: Cohere TypeScript SDK + install: npm i cohere-ai + code: > + const { CohereClient } = require('cohere-ai'); + + + const cohere = new CohereClient({ + token: '<>', + }); + + + (async () => { + const rerank = await cohere.rerank({ + documents: [ + { text: 'Carson City is the capital city of the American state of Nevada.' }, + { + text: 'The Commonwealth of the Northern Mariana Islands is a group of islands in the Pacific Ocean. Its capital is Saipan.', + }, + { + text: 'Capitalization or capitalisation in English grammar is the use of a capital letter at the start of a word. English usage varies from capitalization in other languages.', + }, + { + text: 'Washington, D.C. (also known as simply Washington or D.C., and officially as the District of Columbia) is the capital of the United States. It is a federal district.', + }, + { + text: 'Capital punishment (the death penalty) has existed in the United States since beforethe United States was a country. As of 2017, capital punishment is legal in 30 of the 50 states.', + }, + ], + query: 'What is the capital of the United States?', + topN: 3, + model: 'rerank-english-v3.0', + }); + + console.log(rerank); + })(); + - language: python + name: Sync + install: python -m pip install cohere --upgrade + code: > + import cohere + + + co = cohere.Client("<>") + + + docs = [ + "Carson City is the capital city of the American state of Nevada.", + "The Commonwealth of the Northern Mariana Islands is a group of islands in the Pacific Ocean. Its capital is Saipan.", + "Capitalization or capitalisation in English grammar is the use of a capital letter at the start of a word. English usage varies from capitalization in other languages.", + "Washington, D.C. (also known as simply Washington or D.C., and officially as the District of Columbia) is the capital of the United States. It is a federal district.", + "Capital punishment (the death penalty) has existed in the United States since beforethe United States was a country. As of 2017, capital punishment is legal in 30 of the 50 states.", + ] + + + response = co.rerank( + model="rerank-english-v3.0", + query="What is the capital of the United States?", + documents=docs, + top_n=3, + ) + + print(response) + - language: python + name: Async + install: python -m pip install cohere --upgrade + code: > + import cohere + + import asyncio + + + co = cohere.AsyncClient("<>") + + + docs = [ + "Carson City is the capital city of the American state of Nevada.", + "The Commonwealth of the Northern Mariana Islands is a group of islands in the Pacific Ocean. Its capital is Saipan.", + "Capitalization or capitalisation in English grammar is the use of a capital letter at the start of a word. English usage varies from capitalization in other languages.", + "Washington, D.C. (also known as simply Washington or D.C., and officially as the District of Columbia) is the capital of the United States. It is a federal district.", + "Capital punishment (the death penalty) has existed in the United States since beforethe United States was a country. As of 2017, capital punishment is legal in 30 of the 50 states.", + ] + + + + async def main(): + response = await co.rerank( + model="rerank-english-v2.0", + query="What is the capital of the United States?", + documents=docs, + top_n=3, + ) + print(response) + + asyncio.run(main()) + - language: java + name: Cohere java SDK + install: implementation 'com.cohere:cohere-java:1.0.4' + code: > + import com.cohere.api.Cohere; + + import com.cohere.api.requests.RerankRequest; + + import com.cohere.api.types.RerankRequestDocumentsItem; + + import com.cohere.api.types.RerankResponse; + + + import java.util.List; + + + + public class RerankPost { + public static void main(String[] args) { + Cohere cohere = Cohere.builder().token("<>").clientName("snippet").build(); + + RerankResponse response = cohere.rerank(RerankRequest.builder().query("What is the capital of the United States?").documents(List.of( + RerankRequestDocumentsItem.of("Carson City is the capital city of the American state of Nevada."), + RerankRequestDocumentsItem.of("The Commonwealth of the Northern Mariana Islands is a group of islands in the Pacific Ocean. Its capital is Saipan."), + RerankRequestDocumentsItem.of("Capitalization or capitalisation in English grammar is the use of a capital letter at the start of a word. English usage varies from capitalization in other languages."), + RerankRequestDocumentsItem.of("Washington, D.C. (also known as simply Washington or D.C., and officially as the District of Columbia) is the capital of the United States. It is a federal district."), + RerankRequestDocumentsItem.of("Capital punishment (the death penalty) has existed in the United States since beforethe United States was a country. As of 2017, capital punishment is legal in 30 of the 50 states.") + )).model("rerank-english-v3.0").topN(3).build()); + + System.out.println(response); + } + } + - language: curl + name: cURL + code: >- + curl --request POST \ + --url https://api.cohere.com/v1/rerank \ + --header 'accept: application/json' \ + --header 'content-type: application/json' \ + --header "Authorization: bearer $CO_API_KEY" \ + --data '{ + "model": "rerank-english-v3.0", + "query": "What is the capital of the United States?", + "top_n": 3, + "documents": ["Carson City is the capital city of the American state of Nevada.", + "The Commonwealth of the Northern Mariana Islands is a group of islands in the Pacific Ocean. Its capital is Saipan.", + "Washington, D.C. (also known as simply Washington or D.C., and officially as the District of Columbia) is the capital of the United States. It is a federal district.", + "Capitalization or capitalisation in English grammar is the use of a capital letter at the start of a word. English usage varies from capitalization in other languages.", + "Capital punishment (the death penalty) has existed in the United States since beforethe United States was a country. As of 2017, capital punishment is legal in 30 of the 50 states."] + }' + /classify: + post: + parameters: + - $ref: "#/components/parameters/RequestSource" + x-fern-audiences: + - public + summary: Classify + operationId: classify + x-readme: + samples-languages: + - python + - java + - curl + - node + - go + code-samples: + - language: go + name: Cohere Go SDK + install: go get github.com/cohere-ai/cohere-go/v2 + code: | + package main + + import ( + "context" + "log" + + cohere "github.com/cohere-ai/cohere-go/v2" + client "github.com/cohere-ai/cohere-go/v2/client" + ) + + func main() { + co := client.NewClient(client.WithToken("<>")) + + resp, err := co.Classify( + context.TODO(), + &cohere.ClassifyRequest{ + Examples: []*cohere.ClassifyExample{ + { + Text: cohere.String("orange"), + Label: cohere.String("fruit"), + }, + { + Text: cohere.String("pear"), + Label: cohere.String("fruit"), + }, + { + Text: cohere.String("lettuce"), + Label: cohere.String("vegetable"), + }, + { + Text: cohere.String("cauliflower"), + Label: cohere.String("vegetable"), + }, + }, + Inputs: []string{"peach"}, + }, + ) + + if err != nil { + log.Fatal(err) + } + + log.Printf("%+v", resp) + } + - language: node + name: Cohere TypeScript SDK + install: npm i cohere-ai + code: > + const { CohereClient } = require('cohere-ai'); + + + const cohere = new CohereClient({ + token: '<>', + }); + + + (async () => { + const classify = await cohere.classify({ + examples: [ + { text: "Dermatologists don't like her!", label: 'Spam' }, + { text: "'Hello, open to this?'", label: 'Spam' }, + { text: 'I need help please wire me $1000 right now', label: 'Spam' }, + { text: 'Nice to know you ;)', label: 'Spam' }, + { text: 'Please help me?', label: 'Spam' }, + { text: 'Your parcel will be delivered today', label: 'Not spam' }, + { text: 'Review changes to our Terms and Conditions', label: 'Not spam' }, + { text: 'Weekly sync notes', label: 'Not spam' }, + { text: "'Re: Follow up from today's meeting'", label: 'Not spam' }, + { text: 'Pre-read for tomorrow', label: 'Not spam' }, + ], + inputs: ['Confirm your email address', 'hey i need u to send some $'], + }); + + console.log(classify); + })(); + - language: python + name: Sync + install: python -m pip install cohere --upgrade + code: > + import cohere + + from cohere import ClassifyExample + + + co = cohere.Client("<>") + + examples = [ + ClassifyExample(text="Dermatologists don't like her!", label="Spam"), + ClassifyExample(text="'Hello, open to this?'", label="Spam"), + ClassifyExample( + text="I need help please wire me $1000 right now", label="Spam"), + ClassifyExample(text="Nice to know you ;)", label="Spam"), + ClassifyExample(text="Please help me?", label="Spam"), + ClassifyExample(text="Your parcel will be delivered today", + label="Not spam"), + ClassifyExample( + text="Review changes to our Terms and Conditions", label="Not spam" + ), + ClassifyExample(text="Weekly sync notes", label="Not spam"), + ClassifyExample(text="'Re: Follow up from today's meeting'", + label="Not spam"), + ClassifyExample(text="Pre-read for tomorrow", label="Not spam"), + ] + + inputs = [ + "Confirm your email address", + "hey i need u to send some $", + ] + + response = co.classify( + inputs=inputs, + examples=examples, + ) + + print(response) + - language: python + name: Async + install: python -m pip install cohere --upgrade + code: > + import cohere + + import asyncio + + from cohere import ClassifyExample + + + co = cohere.AsyncClient("<>") + + examples = [ + ClassifyExample(text="Dermatologists don't like her!", label="Spam"), + ClassifyExample(text="'Hello, open to this?'", label="Spam"), + ClassifyExample( + text="I need help please wire me $1000 right now", label="Spam"), + ClassifyExample(text="Nice to know you ;)", label="Spam"), + ClassifyExample(text="Please help me?", label="Spam"), + ClassifyExample(text="Your parcel will be delivered today", + label="Not spam"), + ClassifyExample( + text="Review changes to our Terms and Conditions", label="Not spam" + ), + ClassifyExample(text="Weekly sync notes", label="Not spam"), + ClassifyExample(text="'Re: Follow up from today's meeting'", + label="Not spam"), + ClassifyExample(text="Pre-read for tomorrow", label="Not spam"), + ] + + inputs = [ + "Confirm your email address", + "hey i need u to send some $", + ] + + + + async def main(): + response = await co.classify( + inputs=inputs, + examples=examples, + ) + print(response) + + asyncio.run(main()) + - language: java + name: Cohere java SDK + install: implementation 'com.cohere:cohere-java:1.0.4' + code: > + import com.cohere.api.Cohere; + + import com.cohere.api.requests.ClassifyRequest; + + import com.cohere.api.types.ClassifyExample; + + import com.cohere.api.types.ClassifyResponse; + + + import java.util.List; + + + + public class ClassifyPost { + public static void main(String[] args) { + Cohere cohere = Cohere.builder().token("<>").clientName("snippet").build(); + + ClassifyResponse response = cohere.classify(ClassifyRequest.builder().addAllInputs( + List.of("Confirm your email address", "hey i need u to send some $") + ).examples(List.of( + ClassifyExample.builder().text("Dermatologists don't like her!").label("Spam").build(), + ClassifyExample.builder().text("'Hello, open to this?'").label("Spam").build(), + ClassifyExample.builder().text("I need help please wire me $1000 right now").label("Spam").build(), + ClassifyExample.builder().text("Nice to know you ;)").label("Spam").build(), + ClassifyExample.builder().text("Please help me?").label("Spam").build(), + ClassifyExample.builder().text("Your parcel will be delivered today").label("Not spam").build(), + ClassifyExample.builder().text("Review changes to our Terms and Conditions").label("Not spam").build(), + ClassifyExample.builder().text("Weekly sync notes").label("Not spam").build(), + ClassifyExample.builder().text("'Re: Follow up from today's meeting'").label("Not spam").build(), + ClassifyExample.builder().text("Pre-read for tomorrow").label("Not spam").build() + )).build()); + + System.out.println(response); + } + } + - language: curl + name: cURL + code: >- + curl --request POST \ + --url https://api.cohere.com/v1/classify \ + --header 'accept: application/json' \ + --header 'content-type: application/json' \ + --header "Authorization: bearer $CO_API_KEY" \ + --data '{ + "inputs": ["Confirm your email address", "hey i need u to send some $"], + "examples": [ + {"text": "Dermatologists don'\''t like her!","label": "Spam"}, + {"text": "'\''Hello, open to this?'\''","label": "Spam"}, + {"text": "I need help please wire me $1000 right now","label": "Spam"}, + {"text": "Nice to know you ;)","label": "Spam"}, + {"text": "Please help me?","label": "Spam"}, + {"text": "Your parcel will be delivered today","label": "Not spam"}, + {"text": "Review changes to our Terms and Conditions","label": "Not spam"}, + {"text": "Weekly sync notes","label": "Not spam"}, + {"text": "'\''Re: Follow up from today'\''s meeting'\''","label": "Not spam"}, + {"text": "Pre-read for tomorrow","label": "Not spam"} + ] + }' + responses: + "200": + description: OK + content: + application/json: + schema: + type: object + x-fern-audiences: + - public + x-examples: + Example: + id: ca245541-8841-456e-b306-293370789a30 + classifications: + - id: c50ab0d9-95d8-44de-ba90-9647a1718744 + input: Confirm your email address + prediction: Not spam + predictions: + - Not spam + confidence: 0.7581943 + confidences: + - 0.7581943 + labels: + Not spam: + confidence: 0.7581943 + Spam: + confidence: 0.24180566 + classification_type: single-label + - id: 8a841de2-027f-49d4-8c91-e88fa1865b89 + input: hey i need u to send some $ + prediction: Spam + predictions: + - Spam + confidence: 0.9965721 + confidences: + - 0.9965721 + labels: + Not spam: + confidence: 0.0034279241 + Spam: + confidence: 0.9965721 + classification_type: single-label + properties: + id: + type: string + x-fern-audiences: + - public + readOnly: true + classifications: + type: array + x-fern-audiences: + - public + items: + type: object + x-fern-audiences: + - public + properties: + id: + type: string + x-fern-audiences: + - public + readOnly: true + input: + type: string + x-fern-audiences: + - public + description: The input text that was classified + readOnly: true + prediction: + type: string + x-fern-audiences: + - public + description: The predicted label for the associated query (only filled for + single-label models) + readOnly: true + deprecated: true + predictions: + type: array + x-fern-audiences: + - public + items: + type: string + x-fern-audiences: + - public + description: An array containing the predicted labels for the associated query + (only filled for single-label classification) + readOnly: true + confidence: + type: number + x-fern-audiences: + - public + format: float + description: The confidence score for the top predicted class (only filled for + single-label classification) + readOnly: true + deprecated: true + confidences: + type: array + x-fern-audiences: + - public + items: + type: number + x-fern-audiences: + - public + format: float + description: An array containing the confidence scores of all the predictions in + the same order + readOnly: true + labels: + type: object + x-fern-audiences: + - public + additionalProperties: + type: object + x-fern-audiences: + - public + properties: + confidence: + type: number + x-fern-audiences: + - public + format: float + readOnly: true + readOnly: true + description: A map containing each label and its confidence score according to + the classifier. All the confidence scores add up to + 1 for single-label classification. For multi-label + classification the label confidences are independent + of each other, so they don't have to sum up to 1. + readOnly: true + classification_type: + type: string + x-fern-audiences: + - public + enum: + - single-label + - multi-label + description: The type of classification performed + readOnly: true + required: + - id + - predictions + - confidences + - labels + - classification_type + readOnly: true + readOnly: true + meta: + $ref: "#/components/schemas/ApiMeta" + x-fern-audiences: + - public + required: + - id + - classifications + examples: + Example: + value: + id: ca245541-8841-456e-b306-293370789a30 + classifications: + - id: c50ab0d9-95d8-44de-ba90-9647a1718744 + input: Confirm your email address + prediction: Not spam + predictions: + - Not spam + confidence: 0.7581943 + confidences: + - 0.7581943 + labels: + Not spam: + confidence: 0.7581943 + Spam: + confidence: 0.24180566 + classification_type: single-label + - id: 8a841de2-027f-49d4-8c91-e88fa1865b89 + input: hey i need u to send some $ + prediction: Spam + predictions: + - Spam + confidence: 0.9965721 + confidences: + - 0.9965721 + labels: + Not spam: + confidence: 0.0034279241 + Spam: + confidence: 0.9965721 + classification_type: single-label + meta: + api_version: + version: "1" + headers: + X-API-Warning: + schema: + type: string + x-fern-audiences: + - public + description: Warning description for incorrect usage of the API + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "422": + $ref: "#/components/responses/UnprocessableEntity" + "429": + $ref: "#/components/responses/RateLimit" + "498": + $ref: "#/components/responses/InvalidToken" + "499": + $ref: "#/components/responses/RequestCancelled" + "500": + $ref: "#/components/responses/InternalServerError" + "501": + $ref: "#/components/responses/NotImplemented" + "503": + $ref: "#/components/responses/ServiceUnavailable" + "504": + $ref: "#/components/responses/GatewayTimeout" + description: |- + This endpoint makes a prediction about which label fits the specified text inputs best. To make a prediction, Classify uses the provided `examples` of text + label pairs as a reference. + Note: [Fine-tuned models](https://docs.cohere.com/docs/classify-fine-tuning) trained on classification examples don't require the `examples` parameter to be passed in explicitly. + requestBody: + content: + application/json: + schema: + type: object + x-fern-audiences: + - public + x-examples: + Example: + inputs: + - Confirm your email address + - hey i need u to send some $ + examples: + - text: Dermatologists don't like her! + label: Spam + - text: Hello, open to this? + label: Spam + - text: I need help please wire me $1000 right now + label: Spam + - text: Nice to know you ;) + label: Spam + - text: Please help me? + label: Spam + - text: Your parcel will be delivered today + label: Not spam + - text: Review changes to our Terms and Conditions + label: Not spam + - text: Weekly sync notes + label: Not spam + - text: "Re: Follow up from today’s meeting" + label: Not spam + - text: Pre-read for tomorrow + label: Not spam + properties: + inputs: + type: array + x-fern-audiences: + - public + maxItems: 96 + description: |- + A list of up to 96 texts to be classified. Each one must be a non-empty string. + There is, however, no consistent, universal limit to the length a particular input can be. We perform classification on the first `x` tokens of each input, and `x` varies depending on which underlying model is powering classification. The maximum token length for each model is listed in the "max tokens" column [here](https://docs.cohere.com/docs/models). + Note: by default the `truncate` parameter is set to `END`, so tokens exceeding the limit will be automatically dropped. This behavior can be disabled by setting `truncate` to `NONE`, which will result in validation errors for longer texts. + items: + type: string + x-fern-audiences: + - public + writeOnly: true + writeOnly: true + examples: + type: array + x-fern-audiences: + - public + description: |- + An array of examples to provide context to the model. Each example is a text string and its associated label/class. Each unique label requires at least 2 examples associated with it; the maximum number of examples is 2500, and each example has a maximum length of 512 tokens. The values should be structured as `{text: "...",label: "..."}`. + Note: [Fine-tuned Models](https://docs.cohere.com/docs/classify-fine-tuning) trained on classification examples don't require the `examples` parameter to be passed in explicitly. + maxItems: 2500 + items: + x-fern-audiences: + - public + $ref: "#/components/schemas/ClassifyExample" + writeOnly: true + model: + type: string + x-fern-audiences: + - public + description: The identifier of the model. Currently available models are + `embed-multilingual-v2.0`, `embed-english-light-v2.0`, and + `embed-english-v2.0` (default). Smaller "light" models are + faster, while larger models will perform better. [Fine-tuned + models](https://docs.cohere.com/docs/fine-tuning) can also + be supplied with their full ID. + writeOnly: true + preset: + type: string + x-fern-audiences: + - public + example: my-preset-a58sbd + description: The ID of a custom playground preset. You can create presets in the + [playground](https://dashboard.cohere.com/playground/classify?model=large). + If you use a preset, all other parameters become optional, + and any included parameters will override the preset's + parameters. + writeOnly: true + truncate: + type: string + x-fern-audiences: + - public + default: END + enum: + - NONE + - START + - END + description: |- + One of `NONE|START|END` to specify how the API will handle inputs longer than the maximum token length. + Passing `START` will discard the start of the input. `END` will discard the end of the input. In both cases, input is discarded until the remaining input is exactly the maximum input token length for the model. + If `NONE` is selected, when the input exceeds the maximum input token length an error will be returned. + writeOnly: true + required: + - inputs + examples: + Example: + value: + inputs: + - Confirm your email address + - hey i need u to send some $ + examples: + - text: Dermatologists don't like her! + label: Spam + - text: Hello, open to this? + label: Spam + - text: I need help please wire me $1000 right now + label: Spam + - text: Nice to know you ;) + label: Spam + - text: Please help me? + label: Spam + - text: Your parcel will be delivered today + label: Not spam + - text: Review changes to our Terms and Conditions + label: Not spam + - text: Weekly sync notes + label: Not spam + - text: "Re: Follow up from today’s meeting" + label: Not spam + - text: Pre-read for tomorrow + label: Not spam + description: "" + /datasets: + post: + x-fern-audiences: + - public + summary: Create a Dataset + operationId: create-dataset + description: Create a dataset by uploading a file. See ['Dataset + Creation'](https://docs.cohere.com/docs/datasets#dataset-creation) for + more information. + tags: + - /datasets + x-fern-sdk-group-name: datasets + x-fern-sdk-method-name: create + requestBody: + content: + multipart/form-data: + schema: + type: object + x-fern-audiences: + - public + properties: + data: + type: string + x-fern-audiences: + - public + format: binary + description: The file to upload + eval_data: + type: string + x-fern-audiences: + - public + format: binary + description: An optional evaluation file to upload + required: + - data + parameters: + - in: query + name: name + required: true + schema: + type: string + x-fern-audiences: + - public + description: The name of the uploaded dataset. + - in: query + name: type + required: true + schema: + $ref: "#/components/schemas/DatasetType" + description: The dataset type, which is used to validate the data. Valid types + are `embed-input`, `reranker-finetune-input`, + `single-label-classification-finetune-input`, `chat-finetune-input`, + and `multi-label-classification-finetune-input`. + - in: query + name: keep_original_file + schema: + type: boolean + x-fern-audiences: + - public + description: Indicates if the original file should be stored. + - in: query + name: skip_malformed_input + schema: + type: boolean + x-fern-audiences: + - public + description: Indicates whether rows with malformed input should be dropped + (instead of failing the validation check). Dropped rows will be + returned in the warnings field. + - in: query + name: keep_fields + schema: + type: array + items: + type: string + x-fern-audiences: + - public + description: List of names of fields that will be persisted in the Dataset. By + default the Dataset will retain only the required fields indicated + in the [schema for the corresponding Dataset + type](https://docs.cohere.com/docs/datasets#dataset-types). For + example, datasets of type `embed-input` will drop all fields other + than the required `text` field. If any of the fields in + `keep_fields` are missing from the uploaded file, Dataset validation + will fail. + - in: query + name: optional_fields + schema: + type: array + items: + type: string + x-fern-audiences: + - public + description: List of names of fields that will be persisted in the Dataset. By + default the Dataset will retain only the required fields indicated + in the [schema for the corresponding Dataset + type](https://docs.cohere.com/docs/datasets#dataset-types). For + example, Datasets of type `embed-input` will drop all fields other + than the required `text` field. If any of the fields in + `optional_fields` are missing from the uploaded file, Dataset + validation will pass. + - in: query + name: text_separator + schema: + type: string + x-fern-audiences: + - public + description: Raw .txt uploads will be split into entries using the + text_separator value. + - in: query + name: csv_delimiter + schema: + type: string + x-fern-audiences: + - public + description: The delimiter used for .csv uploads. + - $ref: "#/components/parameters/RequestSource" + x-readme: + samples-languages: + - python + - java + - python + - java + - node + - curl + - go + code-samples: + - language: go + name: Cohere Go SDK + install: go get github.com/cohere-ai/cohere-go/v2 + code: > + package main + + + import ( + "context" + "io" + "log" + "strings" + + cohere "github.com/cohere-ai/cohere-go/v2" + client "github.com/cohere-ai/cohere-go/v2/client" + ) + + + type MyReader struct { + io.Reader + name string + } + + + func (m *MyReader) Name() string { + return m.name + } + + + func main() { + co := client.NewClient(client.WithToken("<>")) + + resp, err := co.Datasets.Create( + context.TODO(), + &MyReader{Reader: strings.NewReader(`{"text": "The quick brown fox jumps over the lazy dog"}`), name: "test.jsonl"}, + &MyReader{Reader: strings.NewReader(""), name: "a.jsonl"}, + &cohere.DatasetsCreateRequest{ + Name: "prompt-completion-dataset", + Type: cohere.DatasetTypeEmbedResult, + }, + ) + + if err != nil { + log.Fatal(err) + } + + log.Printf("%+v", resp) + } + - language: python + name: Sync + install: python -m pip install cohere --upgrade + code: | + import cohere + + co = cohere.Client("<>") + + # upload a dataset + response = co.datasets.create( + name="prompt-completion-dataset", + data=open("./prompt-completion.jsonl", "rb"), + type="prompt-completion-finetune-input", + ) + + # wait for validation to complete + response = co.wait(my_dataset) + + print(response) + - language: python + name: Async + install: python -m pip install cohere --upgrade + code: | + import cohere + import asyncio + + co = cohere.AsyncClient("<>") + + + async def main(): + + # upload a dataset + response = await co.datasets.create( + name="prompt-completion-dataset", + data=open("./prompt-completion.jsonl", "rb"), + type="prompt-completion-finetune-input", + ) + + # wait for validation to complete + response = await co.wait(response) + + print(response) + + asyncio.run(main()) + - language: java + name: Cohere java SDK + install: implementation 'com.cohere:cohere-java:1.0.4' + code: > + import com.cohere.api.Cohere; + + import + com.cohere.api.resources.datasets.requests.DatasetsCreateRequest; + + import + com.cohere.api.resources.datasets.types.DatasetsCreateResponse; + + import com.cohere.api.types.DatasetType; + + + import java.util.Optional; + + + + public class DatasetPost { + public static void main(String[] args) { + Cohere cohere = Cohere.builder().token("<>").clientName("snippet").build(); + + DatasetsCreateResponse response = cohere.datasets().create(null, Optional.empty(), DatasetsCreateRequest.builder().name("prompt-completion-dataset").type(DatasetType.PROMPT_COMPLETION_FINETUNE_INPUT).build()); + + System.out.println(response); + } + } + - language: node + name: Cohere TypeScript SDK + install: npm i cohere-ai + code: > + const { CohereClient } = require('cohere-ai'); + + const fs = require('fs'); + + + const cohere = new CohereClient({ + token: '<>', + }); + + + (async () => { + const file = fs.createReadStream('embed_jobs_sample_data.jsonl'); // {"text": "The quick brown fox jumps over the lazy dog"} + + const dataset = await cohere.datasets.create({ name: 'my-dataset', type: 'embed-input' }, file); + + console.log(dataset); + })(); + - language: curl + name: cURL + code: >- + curl --request POST \ + --url "https://api.cohere.com/v1/datasets?name=my-dataset&type=generative-finetune-input" \ + --header 'Content-Type: multipart/form-data' \ + --header "Authorization: Bearer $CO_API_KEY" \ + --form file=@./path/to/file.jsonl + responses: + "200": + description: A successful response. + content: + application/json: + schema: + type: object + x-fern-audiences: + - public + properties: + id: + type: string + x-fern-audiences: + - public + description: The dataset ID + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "422": + $ref: "#/components/responses/UnprocessableEntity" + "429": + $ref: "#/components/responses/RateLimit" + "498": + $ref: "#/components/responses/InvalidToken" + "499": + $ref: "#/components/responses/RequestCancelled" + "500": + $ref: "#/components/responses/InternalServerError" + "501": + $ref: "#/components/responses/NotImplemented" + "503": + $ref: "#/components/responses/ServiceUnavailable" + "504": + $ref: "#/components/responses/GatewayTimeout" + get: + x-fern-audiences: + - public + summary: List Datasets + operationId: list-datasets + description: List datasets that have been created. + tags: + - /datasets + x-fern-sdk-group-name: datasets + x-fern-sdk-method-name: list + parameters: + - name: datasetType + in: query + description: optional filter by dataset type + schema: + type: string + x-fern-audiences: + - public + - name: before + in: query + description: optional filter before a date + schema: + type: string + x-fern-audiences: + - public + format: date-time + - name: after + in: query + description: optional filter after a date + schema: + type: string + x-fern-audiences: + - public + format: date-time + - name: limit + in: query + description: optional limit to number of results + schema: + type: number + x-fern-audiences: + - public + - name: offset + in: query + description: optional offset to start of results + schema: + type: number + x-fern-audiences: + - public + - name: validationStatus + in: query + description: optional filter by validation status + schema: + $ref: "#/components/schemas/DatasetValidationStatus" + - $ref: "#/components/parameters/RequestSource" + x-readme: + samples-languages: + - python + - java + - python + - java + - node + - curl + - go + code-samples: + - language: go + name: Cohere Go SDK + install: go get github.com/cohere-ai/cohere-go/v2 + code: | + package main + + import ( + "context" + "log" + + client "github.com/cohere-ai/cohere-go/v2/client" + ) + + func main() { + co := client.NewClient(client.WithToken("<>")) + + resp, err := co.Datasets.Get(context.TODO(), "dataset_id") + + if err != nil { + log.Fatal(err) + } + + log.Printf("%+v", resp) + } + - language: python + name: Sync + install: python -m pip install cohere --upgrade + code: | + import cohere + + co = cohere.Client("<>") + + # get dataset + response = co.datasets.get(id="<>") + + print(response) + - language: python + name: Async + install: python -m pip install cohere --upgrade + code: | + import cohere + import asyncio + + co = cohere.AsyncClient("<>") + + + async def main(): + response = await co.datasets.get(id="<>") + + print(response) + + asyncio.run(main()) + - language: java + name: Cohere java SDK + install: implementation 'com.cohere:cohere-java:1.0.4' + code: > + import com.cohere.api.Cohere; + + import + com.cohere.api.resources.datasets.types.DatasetsGetResponse; + + + + public class DatasetGet { + public static void main(String[] args) { + Cohere cohere = Cohere.builder().token("<>").clientName("snippet").build(); + + DatasetsGetResponse response = cohere.datasets().get("dataset_id"); + + System.out.println(response); + } + } + - language: node + name: Cohere TypeScript SDK + install: npm i cohere-ai + code: | + const { CohereClient } = require('cohere-ai'); + + const cohere = new CohereClient({ + token: '<>', + }); + + (async () => { + const datasets = await cohere.datasets.get('<>'); + + console.log(datasets); + })(); + - language: curl + name: cURL + code: |- + curl --request GET \ + --url https://api.cohere.com/v1/datasets \ + --header 'accept: application/json' \ + --header "Authorization: bearer $CO_API_KEY" + responses: + "200": + description: A successful response. + content: + application/json: + schema: + type: object + x-fern-audiences: + - public + properties: + datasets: + type: array + x-fern-audiences: + - public + items: + $ref: "#/components/schemas/Dataset" + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "422": + $ref: "#/components/responses/UnprocessableEntity" + "429": + $ref: "#/components/responses/RateLimit" + "498": + $ref: "#/components/responses/InvalidToken" + "499": + $ref: "#/components/responses/RequestCancelled" + "500": + $ref: "#/components/responses/InternalServerError" + "501": + $ref: "#/components/responses/NotImplemented" + "503": + $ref: "#/components/responses/ServiceUnavailable" + "504": + $ref: "#/components/responses/GatewayTimeout" + /datasets/usage: + get: + x-fern-audiences: + - public + summary: Get Dataset Usage + operationId: get-dataset-usage + description: View the dataset storage usage for your Organization. Each + Organization can have up to 10GB of storage across all their users. + tags: + - /datasets + parameters: + - $ref: "#/components/parameters/RequestSource" + x-fern-sdk-group-name: datasets + x-fern-sdk-method-name: getUsage + x-readme: + samples-languages: + - python + - java + - python + - java + - node + - curl + - go + code-samples: + - language: go + name: Cohere Go SDK + install: go get github.com/cohere-ai/cohere-go/v2 + code: | + package main + + import ( + "context" + "log" + + client "github.com/cohere-ai/cohere-go/v2/client" + ) + + func main() { + co := client.NewClient(client.WithToken("<>")) + + resp, err := co.Datasets.GetUsage(context.TODO()) + + if err != nil { + log.Fatal(err) + } + + log.Printf("%+v", resp) + } + - language: python + name: Sync + install: python -m pip install cohere --upgrade + code: | + import cohere + + co = cohere.Client("<>") + + # get usage + response = co.datasets.get_usage() + + print(response) + - language: python + name: Async + install: python -m pip install cohere --upgrade + code: | + import cohere + import asyncio + + co = cohere.AsyncClient("<>") + + + async def main(): + response = await co.datasets.get_usage() + + print(response) + + asyncio.run(main()) + - language: java + name: Cohere java SDK + install: implementation 'com.cohere:cohere-java:1.0.4' + code: > + import com.cohere.api.Cohere; + + import + com.cohere.api.resources.datasets.types.DatasetsGetUsageResponse; + + + + public class DatasetUsageGet { + public static void main(String[] args) { + Cohere cohere = Cohere.builder().token("<>").clientName("snippet").build(); + + DatasetsGetUsageResponse response = cohere.datasets().getUsage(); + + System.out.println(response); + } + } + - language: node + name: Cohere TypeScript SDK + install: npm i cohere-ai + code: | + const { CohereClient } = require('cohere-ai'); + + const cohere = new CohereClient({ + token: '<>', + }); + + (async () => { + const usage = await cohere.datasets.getUsage('id'); + + console.log(usage); + })(); + - language: curl + name: cURL + code: |- + curl --request GET \ + --url https://api.cohere.com/v1/datasets/usage \ + --header 'accept: application/json' \ + --header "Authorization: bearer $CO_API_KEY" + responses: + "200": + description: A successful response. + content: + application/json: + schema: + type: object + x-fern-audiences: + - public + properties: + organization_usage: + type: number + x-fern-audiences: + - public + format: int64 + description: The total number of bytes used by the organization. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "422": + $ref: "#/components/responses/UnprocessableEntity" + "429": + $ref: "#/components/responses/RateLimit" + "498": + $ref: "#/components/responses/InvalidToken" + "499": + $ref: "#/components/responses/RequestCancelled" + "500": + $ref: "#/components/responses/InternalServerError" + "501": + $ref: "#/components/responses/NotImplemented" + "503": + $ref: "#/components/responses/ServiceUnavailable" + "504": + $ref: "#/components/responses/GatewayTimeout" + "/datasets/{id}": + get: + x-fern-audiences: + - public + summary: Get a Dataset + operationId: get-dataset + description: Retrieve a dataset by ID. See + ['Datasets'](https://docs.cohere.com/docs/datasets) for more + information. + tags: + - /datasets + x-fern-sdk-group-name: datasets + x-fern-sdk-method-name: get + parameters: + - name: id + in: path + required: true + schema: + type: string + x-fern-audiences: + - public + pattern: ^(?!usage$).*$ + - $ref: "#/components/parameters/RequestSource" + x-readme: + samples-languages: + - python + - java + - python + - java + - node + - curl + - go + code-samples: + - language: go + name: Cohere Go SDK + install: go get github.com/cohere-ai/cohere-go/v2 + code: | + package main + + import ( + "context" + "log" + + client "github.com/cohere-ai/cohere-go/v2/client" + ) + + func main() { + co := client.NewClient(client.WithToken("<>")) + + resp, err := co.Datasets.Get(context.TODO(), "dataset_id") + + if err != nil { + log.Fatal(err) + } + + log.Printf("%+v", resp) + } + - language: python + name: Sync + install: python -m pip install cohere --upgrade + code: | + import cohere + + co = cohere.Client("<>") + + # get dataset + response = co.datasets.get(id="<>") + + print(response) + - language: python + name: Async + install: python -m pip install cohere --upgrade + code: | + import cohere + import asyncio + + co = cohere.AsyncClient("<>") + + + async def main(): + response = await co.datasets.get(id="<>") + + print(response) + + asyncio.run(main()) + - language: java + name: Cohere java SDK + install: implementation 'com.cohere:cohere-java:1.0.4' + code: > + import com.cohere.api.Cohere; + + import + com.cohere.api.resources.datasets.types.DatasetsGetResponse; + + + + public class DatasetGet { + public static void main(String[] args) { + Cohere cohere = Cohere.builder().token("<>").clientName("snippet").build(); + + DatasetsGetResponse response = cohere.datasets().get("dataset_id"); + + System.out.println(response); + } + } + - language: node + name: Cohere TypeScript SDK + install: npm i cohere-ai + code: | + const { CohereClient } = require('cohere-ai'); + + const cohere = new CohereClient({ + token: '<>', + }); + + (async () => { + const datasets = await cohere.datasets.get('<>'); + + console.log(datasets); + })(); + - language: curl + name: cURL + code: |- + curl --request GET \ + --url https://api.cohere.com/v1/datasets \ + --header 'accept: application/json' \ + --header "Authorization: bearer $CO_API_KEY" + responses: + "200": + description: A successful response. + content: + application/json: + schema: + type: object + x-fern-audiences: + - public + required: + - dataset + properties: + dataset: + $ref: "#/components/schemas/Dataset" + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "422": + $ref: "#/components/responses/UnprocessableEntity" + "429": + $ref: "#/components/responses/RateLimit" + "498": + $ref: "#/components/responses/InvalidToken" + "499": + $ref: "#/components/responses/RequestCancelled" + "500": + $ref: "#/components/responses/InternalServerError" + "501": + $ref: "#/components/responses/NotImplemented" + "503": + $ref: "#/components/responses/ServiceUnavailable" + "504": + $ref: "#/components/responses/GatewayTimeout" + delete: + x-fern-audiences: + - public + summary: Delete a Dataset + operationId: delete-dataset + description: Delete a dataset by ID. Datasets are automatically deleted after 30 + days, but they can also be deleted manually. + tags: + - /datasets + x-fern-sdk-group-name: datasets + x-fern-sdk-method-name: delete + parameters: + - name: id + in: path + required: true + schema: + type: string + x-fern-audiences: + - public + pattern: ^(?!usage$).*$ + - $ref: "#/components/parameters/RequestSource" + x-readme: + samples-languages: + - python + - java + - python + - java + - node + - curl + - go + code-samples: + - language: go + name: Cohere Go SDK + install: go get github.com/cohere-ai/cohere-go/v2 + code: | + package main + + import ( + "context" + "log" + + client "github.com/cohere-ai/cohere-go/v2/client" + ) + + func main() { + co := client.NewClient(client.WithToken("<>")) + + _, err := co.Datasets.Delete(context.TODO(), "dataset_id") + + if err != nil { + log.Fatal(err) + } + + } + - language: python + name: Sync + install: python -m pip install cohere --upgrade + code: | + import cohere + + co = cohere.Client("<>") + + # delete dataset + co.datasets.delete("id") + - language: python + name: Async + install: python -m pip install cohere --upgrade + code: | + import cohere + import asyncio + + co = cohere.AsyncClient("<>") + + + async def main(): + await co.delete_dataset("id") + + asyncio.run(main()) + - language: java + name: Cohere java SDK + install: implementation 'com.cohere:cohere-java:1.0.4' + code: > + import com.cohere.api.Cohere; + + + + public class DatasetDelete { + public static void main(String[] args) { + Cohere cohere = Cohere.builder().token("<>").clientName("snippet").build(); + + cohere.datasets().delete("id"); + + } + } + - language: curl + name: cURL + code: |- + curl --request DELETE \ + --url https://api.cohere.com/v1/datasets/id \ + --header 'accept: application/json' \ + --header 'content-type: application/json' \ + --header "Authorization: bearer $CO_API_KEY" + responses: + "200": + description: A successful response. + content: + application/json: + schema: + type: object + x-fern-audiences: + - public + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "422": + $ref: "#/components/responses/UnprocessableEntity" + "429": + $ref: "#/components/responses/RateLimit" + "498": + $ref: "#/components/responses/InvalidToken" + "499": + $ref: "#/components/responses/RequestCancelled" + "500": + $ref: "#/components/responses/InternalServerError" + "501": + $ref: "#/components/responses/NotImplemented" + "503": + $ref: "#/components/responses/ServiceUnavailable" + "504": + $ref: "#/components/responses/GatewayTimeout" + /summarize: + post: + x-fern-audiences: + - public + summary: Summarize + operationId: summarize + parameters: + - $ref: "#/components/parameters/RequestSource" + x-readme: + samples-languages: + - python + - java + - curl + - node + - go + code-samples: + - language: go + name: Cohere Go SDK + install: go get github.com/cohere-ai/cohere-go/v2 + code: > + package main + + + import ( + "context" + "log" + + cohere "github.com/cohere-ai/cohere-go/v2" + client "github.com/cohere-ai/cohere-go/v2/client" + ) + + + func main() { + co := client.NewClient(client.WithToken("<>")) + + resp, err := co.Summarize( + context.TODO(), + &cohere.SummarizeRequest{ + Text: "the quick brown fox jumped over the lazy dog and then the dog jumped over the fox the quick brown fox jumped over the lazy dog the quick brown fox jumped over the lazy dog the quick brown fox jumped over the lazy dog the quick brown fox jumped over the lazy dog", + }, + ) + + if err != nil { + log.Fatal(err) + } + + log.Printf("%+v", resp) + } + - language: node + name: Cohere TypeScript SDK + install: npm i cohere-ai + code: > + const { CohereClient } = require('cohere-ai'); + + + const cohere = new CohereClient({ + token: '<>', + }); + + + (async () => { + const summarize = await cohere.summarize({ + text: + 'Ice cream is a sweetened frozen food typically eaten as a snack or dessert. ' + + 'It may be made from milk or cream and is flavoured with a sweetener, ' + + 'either sugar or an alternative, and a spice, such as cocoa or vanilla, ' + + 'or with fruit such as strawberries or peaches. ' + + 'It can also be made by whisking a flavored cream base and liquid nitrogen together. ' + + 'Food coloring is sometimes added, in addition to stabilizers. ' + + 'The mixture is cooled below the freezing point of water and stirred to incorporate air spaces ' + + 'and to prevent detectable ice crystals from forming. The result is a smooth, ' + + 'semi-solid foam that is solid at very low temperatures (below 2 °C or 35 °F). ' + + 'It becomes more malleable as its temperature increases.\n\n' + + 'The meaning of the name "ice cream" varies from one country to another. ' + + 'In some countries, such as the United States, "ice cream" applies only to a specific variety, ' + + 'and most governments regulate the commercial use of the various terms according to the ' + + 'relative quantities of the main ingredients, notably the amount of cream. ' + + 'Products that do not meet the criteria to be called ice cream are sometimes labelled ' + + '"frozen dairy dessert" instead. In other countries, such as Italy and Argentina, ' + + 'one word is used fo\r all variants. Analogues made from dairy alternatives, ' + + "such as goat's or sheep's milk, or milk substitutes " + + '(e.g., soy, cashew, coconut, almond milk or tofu), are available for those who are ' + + 'lactose intolerant, allergic to dairy protein or vegan.', + }); + + console.log(summarize); + })(); + - language: python + name: Sync + install: python -m pip install cohere --upgrade + code: > + import cohere + + + co = cohere.Client("<>") + + + text = ( + "Ice cream is a sweetened frozen food typically eaten as a snack or dessert. " + "It may be made from milk or cream and is flavoured with a sweetener, " + "either sugar or an alternative, and a spice, such as cocoa or vanilla, " + "or with fruit such as strawberries or peaches. " + "It can also be made by whisking a flavored cream base and liquid nitrogen together. " + "Food coloring is sometimes added, in addition to stabilizers. " + "The mixture is cooled below the freezing point of water and stirred to incorporate air spaces " + "and to prevent detectable ice crystals from forming. The result is a smooth, " + "semi-solid foam that is solid at very low temperatures (below 2 °C or 35 °F). " + "It becomes more malleable as its temperature increases.\n\n" + 'The meaning of the name "ice cream" varies from one country to another. ' + 'In some countries, such as the United States, "ice cream" applies only to a specific variety, ' + "and most governments regulate the commercial use of the various terms according to the " + "relative quantities of the main ingredients, notably the amount of cream. " + "Products that do not meet the criteria to be called ice cream are sometimes labelled " + '"frozen dairy dessert" instead. In other countries, such as Italy and Argentina, ' + "one word is used fo\r all variants. Analogues made from dairy alternatives, " + "such as goat's or sheep's milk, or milk substitutes " + "(e.g., soy, cashew, coconut, almond milk or tofu), are available for those who are " + "lactose intolerant, allergic to dairy protein or vegan." + ) + + + response = co.summarize( + text=text, + ) + + print(response) + - language: python + name: Async + install: python -m pip install cohere --upgrade + code: > + import cohere + + import asyncio + + + co = cohere.AsyncClient("<>") + + + text = ( + "Ice cream is a sweetened frozen food typically eaten as a snack or dessert. " + "It may be made from milk or cream and is flavoured with a sweetener, " + "either sugar or an alternative, and a spice, such as cocoa or vanilla, " + "or with fruit such as strawberries or peaches. " + "It can also be made by whisking a flavored cream base and liquid nitrogen together. " + "Food coloring is sometimes added, in addition to stabilizers. " + "The mixture is cooled below the freezing point of water and stirred to incorporate air spaces " + "and to prevent detectable ice crystals from forming. The result is a smooth, " + "semi-solid foam that is solid at very low temperatures (below 2 °C or 35 °F). " + "It becomes more malleable as its temperature increases.\n\n" + 'The meaning of the name "ice cream" varies from one country to another. ' + 'In some countries, such as the United States, "ice cream" applies only to a specific variety, ' + "and most governments regulate the commercial use of the various terms according to the " + "relative quantities of the main ingredients, notably the amount of cream. " + "Products that do not meet the criteria to be called ice cream are sometimes labelled " + '"frozen dairy dessert" instead. In other countries, such as Italy and Argentina, ' + "one word is used fo\r all variants. Analogues made from dairy alternatives, " + "such as goat's or sheep's milk, or milk substitutes " + "(e.g., soy, cashew, coconut, almond milk or tofu), are available for those who are " + "lactose intolerant, allergic to dairy protein or vegan." + ) + + + + async def main(): + response = await co.summarize( + text=text, + ) + print(response) + + asyncio.run(main()) + - language: java + name: Cohere java SDK + install: implementation 'com.cohere:cohere-java:1.0.4' + code: > + import com.cohere.api.Cohere; + + import com.cohere.api.requests.SummarizeRequest; + + import com.cohere.api.types.SummarizeResponse; + + + + public class SummarizePost { + public static void main(String[] args) { + Cohere cohere = Cohere.builder().token("<>").clientName("snippet").build(); + + SummarizeResponse response = cohere.summarize(SummarizeRequest.builder().text( + """ + Ice cream is a sweetened frozen food typically eaten as a snack or dessert.\s + It may be made from milk or cream and is flavoured with a sweetener,\s + either sugar or an alternative, and a spice, such as cocoa or vanilla,\s + or with fruit such as strawberries or peaches.\s + It can also be made by whisking a flavored cream base and liquid nitrogen together.\s + Food coloring is sometimes added, in addition to stabilizers.\s + The mixture is cooled below the freezing point of water and stirred to incorporate air spaces\s + and to prevent detectable ice crystals from forming. The result is a smooth,\s + semi-solid foam that is solid at very low temperatures (below 2 °C or 35 °F).\s + It becomes more malleable as its temperature increases.\\n\\n + The meaning of the name "ice cream" varies from one country to another.\s + In some countries, such as the United States, "ice cream" applies only to a specific variety,\s + and most governments regulate the commercial use of the various terms according to the\s + relative quantities of the main ingredients, notably the amount of cream.\s + Products that do not meet the criteria to be called ice cream are sometimes labelled\s + "frozen dairy dessert" instead. In other countries, such as Italy and Argentina,\s + one word is used fo\\r all variants. Analogues made from dairy alternatives,\s + such as goat's or sheep's milk, or milk substitutes\s + (e.g., soy, cashew, coconut, almond milk or tofu), are available for those who are\s + lactose intolerant, allergic to dairy protein or vegan. + """ + ).build()); + + System.out.println(response); + } + } + - language: curl + name: cURL + code: >- + curl --request POST \ + --url https://api.cohere.com/v1/summarize \ + --header 'accept: application/json' \ + --header 'content-type: application/json' \ + --header "Authorization: bearer $CO_API_KEY" \ + --data '{ + "text": "Ice cream is a sweetened frozen food typically eaten as a snack or dessert. It may be made from milk or cream and is flavoured with a sweetener, either sugar or an alternative, and a spice, such as cocoa or vanilla, or with fruit such as strawberries or peaches. It can also be made by whisking a flavored cream base and liquid nitrogen together. Food coloring is sometimes added, in addition to stabilizers. The mixture is cooled below the freezing point of water and stirred to incorporate air spaces and to prevent detectable ice crystals from forming. The result is a smooth, semi-solid foam that is solid at very low temperatures (below 2 °C or 35 °F). It becomes more malleable as its temperature increases.\n\nThe meaning of the name \"ice cream\" varies from one country to another. In some countries, such as the United States, \"ice cream\" applies only to a specific variety, and most governments regulate the commercial use of the various terms according to the relative quantities of the main ingredients, notably the amount of cream. Products that do not meet the criteria to be called ice cream are sometimes labelled \"frozen dairy dessert\" instead. In other countries, such as Italy and Argentina, one word is used for all variants. Analogues made from dairy alternatives, such as goat'\''s or sheep'\''s milk, or milk substitutes (e.g., soy, cashew, coconut, almond milk or tofu), are available for those who are lactose intolerant, allergic to dairy protein or vegan." + }' + responses: + "200": + description: OK + headers: + X-API-Warning: + schema: + type: string + x-fern-audiences: + - public + description: Warning description for incorrect usage of the API + content: + application/json: + schema: + type: object + x-fern-audiences: + - public + properties: + id: + type: string + x-fern-audiences: + - public + description: Generated ID for the summary + summary: + type: string + x-fern-audiences: + - public + description: Generated summary for the text + meta: + $ref: "#/components/schemas/ApiMeta" + x-fern-audiences: + - public + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "422": + $ref: "#/components/responses/UnprocessableEntity" + "429": + $ref: "#/components/responses/RateLimit" + "498": + $ref: "#/components/responses/InvalidToken" + "499": + $ref: "#/components/responses/RequestCancelled" + "500": + $ref: "#/components/responses/InternalServerError" + "501": + $ref: "#/components/responses/NotImplemented" + "503": + $ref: "#/components/responses/ServiceUnavailable" + "504": + $ref: "#/components/responses/GatewayTimeout" + description: | + > 🚧 Warning + > + > This API is marked as "Legacy" and is no longer maintained. Follow the [migration guide](/docs/migrating-from-cogenerate-to-cochat) to start using the Chat API. + + Generates a summary in English for a given text. + requestBody: + content: + application/json: + schema: + type: object + x-fern-audiences: + - public + properties: + text: + type: string + x-fern-audiences: + - public + description: The text to generate a summary for. Can be up to 100,000 characters + long. Currently the only supported language is English. + minLength: 250 + maxLength: 50000 + writeOnly: true + length: + type: string + x-fern-audiences: + - public + description: One of `short`, `medium`, `long`, or `auto` defaults to `auto`. + Indicates the approximate length of the summary. If `auto` + is selected, the best option will be picked based on the + input text. + default: medium + enum: + - short + - medium + - long + writeOnly: true + format: + type: string + x-fern-audiences: + - public + default: paragraph + enum: + - paragraph + - bullets + description: One of `paragraph`, `bullets`, or `auto`, defaults to `auto`. + Indicates the style in which the summary will be delivered - + in a free form paragraph or in bullet points. If `auto` is + selected, the best option will be picked based on the input + text. + writeOnly: true + model: + type: string + x-fern-audiences: + - public + description: The identifier of the model to generate the summary with. Currently + available models are `command` (default), `command-nightly` + (experimental), `command-light`, and `command-light-nightly` + (experimental). Smaller, "light" models are faster, while + larger models will perform better. + writeOnly: true + extractiveness: + type: string + x-fern-audiences: + - public + description: One of `low`, `medium`, `high`, or `auto`, defaults to `auto`. + Controls how close to the original text the summary is. + `high` extractiveness summaries will lean towards reusing + sentences verbatim, while `low` extractiveness summaries + will tend to paraphrase more. If `auto` is selected, the + best option will be picked based on the input text. + default: low + enum: + - low + - medium + - high + writeOnly: true + temperature: + type: number + x-fern-audiences: + - public + description: Ranges from 0 to 5. Controls the randomness of the output. Lower + values tend to generate more “predictable” output, while + higher values tend to generate more “creative” output. The + sweet spot is typically between 0 and 1. + default: 0.3 + minimum: 0 + maximum: 5 + writeOnly: true + additional_command: + type: string + x-fern-audiences: + - public + description: A free-form instruction for modifying how the summaries get + generated. Should complete the sentence "Generate a summary + _". Eg. "focusing on the next steps" or "written by Yoda" + writeOnly: true + required: + - text + examples: + Example: + value: + text: "Ice cream is a sweetened frozen food typically eaten as a snack or + dessert. It may be made from milk or cream and is flavoured + with a sweetener, either sugar or an alternative, and a + spice, such as cocoa or vanilla, or with fruit such as + strawberries or peaches. It can also be made by whisking a + flavored cream base and liquid nitrogen together. Food + coloring is sometimes added, in addition to stabilizers. The + mixture is cooled below the freezing point of water and + stirred to incorporate air spaces and to prevent detectable + ice crystals from forming. The result is a smooth, + semi-solid foam that is solid at very low temperatures + (below 2 °C or 35 °F). It becomes more malleable as its + temperature increases. + + + The meaning of the name \"ice cream\" varies from one + country to another. In some countries, such as the United + States, \"ice cream\" applies only to a specific variety, + and most governments regulate the commercial use of the + various terms according to the relative quantities of the + main ingredients, notably the amount of cream. Products that + do not meet the criteria to be called ice cream are + sometimes labelled \"frozen dairy dessert\" instead. In + other countries, such as Italy and Argentina, one word is + used fo\r all variants. Analogues made from dairy + alternatives, such as goat's or sheep's milk, or milk + substitutes (e.g., soy, cashew, coconut, almond milk or + tofu), are available for those who are lactose intolerant, + allergic to dairy protein or vegan." + description: "" + /tokenize: + post: + x-fern-audiences: + - public + summary: Tokenize + operationId: tokenize + parameters: + - $ref: "#/components/parameters/RequestSource" + x-readme: + samples-languages: + - python + - java + - curl + - node + - go + code-samples: + - language: go + name: Cohere Go SDK + install: go get github.com/cohere-ai/cohere-go/v2 + code: | + package main + + import ( + "context" + "log" + + cohere "github.com/cohere-ai/cohere-go/v2" + client "github.com/cohere-ai/cohere-go/v2/client" + ) + + func main() { + co := client.NewClient(client.WithToken("<>")) + + resp, err := co.Tokenize( + context.TODO(), + &cohere.TokenizeRequest{ + Text: "cohere <3", + Model: "base", + }, + ) + + if err != nil { + log.Fatal(err) + } + + log.Printf("%+v", resp) + } + - language: node + name: Cohere TypeScript SDK + install: npm i cohere-ai + code: | + const cohere = require('cohere-ai'); + cohere.init('<>')(async () => { + const response = await cohere.tokenize({ + text: 'tokenize me! :D', + model: 'command', // optional + }); + console.log(response); + })(); + - language: python + name: Sync + install: python -m pip install cohere --upgrade + code: > + import cohere + + + co = cohere.Client("<>") + + + response = co.tokenize(text="tokenize me! :D", model="command") # + optional + + print(response) + - language: python + name: Async + install: python -m pip install cohere --upgrade + code: > + import cohere + + import asyncio + + + co = cohere.AsyncClient("<>") + + + + async def main(): + response = await co.tokenize(text="tokenize me! :D", model="command") + print(response) + + asyncio.run(main()) + - language: java + name: Cohere java SDK + install: implementation 'com.cohere:cohere-java:1.0.4' + code: > + import com.cohere.api.Cohere; + + import com.cohere.api.requests.TokenizeRequest; + + import com.cohere.api.types.TokenizeResponse; + + + + public class TokenizePost { + public static void main(String[] args) { + Cohere cohere = Cohere.builder().token("<>").clientName("snippet").build(); + + TokenizeResponse response = cohere.tokenize(TokenizeRequest.builder().text("tokenize me").model("command").build()); + + System.out.println(response); + } + } + - language: node + name: Cohere Node.js SDK + install: npm install cohere-ai + code: | + const cohere = require('cohere-ai'); + cohere.init('<>')(async () => { + const response = await cohere.tokenize({ + text: 'tokenize me! :D', + model: 'command', // optional + }); + console.log(response); + })(); + - language: curl + name: cURL + code: |- + curl --request POST \ + --url https://api.cohere.com/v1/tokenize \ + --header 'accept: application/json' \ + --header 'content-type: application/json' \ + --header "Authorization: bearer $CO_API_KEY" \ + --data '{ + "model": "command", + "text": "tokenize me! :D" + }' + responses: + "200": + description: OK + headers: + X-API-Warning: + schema: + type: string + x-fern-audiences: + - public + description: Warning description for incorrect usage of the API + content: + application/json: + schema: + type: object + x-fern-audiences: + - public + properties: + tokens: + type: array + x-fern-audiences: + - public + description: An array of tokens, where each token is an integer. + items: + type: integer + x-fern-audiences: + - public + readOnly: true + readOnly: true + token_strings: + type: array + x-fern-audiences: + - public + items: + type: string + x-fern-audiences: + - public + meta: + $ref: "#/components/schemas/ApiMeta" + x-fern-audiences: + - public + required: + - tokens + - token_strings + examples: + Example: + value: + tokens: + - 34160 + - 974 + - 514 + - 34 + - 1420 + - 69 + token_strings: + - token + - ize' + - " me" + - "!" + - " :" + - D + meta: + api_version: + version: "1" + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "422": + $ref: "#/components/responses/UnprocessableEntity" + "429": + $ref: "#/components/responses/RateLimit" + "498": + $ref: "#/components/responses/InvalidToken" + "499": + $ref: "#/components/responses/RequestCancelled" + "500": + $ref: "#/components/responses/InternalServerError" + "501": + $ref: "#/components/responses/NotImplemented" + "503": + $ref: "#/components/responses/ServiceUnavailable" + "504": + $ref: "#/components/responses/GatewayTimeout" + description: This endpoint splits input text into smaller units called tokens + using byte-pair encoding (BPE). To learn more about tokenization and + byte pair encoding, see the tokens page. + requestBody: + content: + application/json: + schema: + type: object + x-fern-audiences: + - public + properties: + text: + type: string + x-fern-audiences: + - public + description: The string to be tokenized, the minimum text length is 1 character, + and the maximum text length is 65536 characters. + minLength: 1 + maxLength: 65536 + model: + type: string + x-fern-audiences: + - public + description: An optional parameter to provide the model name. This will ensure + that the tokenization uses the tokenizer used by that model. + required: + - text + - model + examples: + Example: + value: + text: tokenize me! :D + model: command + description: "" + /detokenize: + post: + x-fern-audiences: + - public + summary: Detokenize + operationId: detokenize + parameters: + - $ref: "#/components/parameters/RequestSource" + x-readme: + samples-languages: + - python + - java + - curl + - node + - go + code-samples: + - language: go + name: Cohere Go SDK + install: go get github.com/cohere-ai/cohere-go/v2 + code: | + package main + + import ( + "context" + "log" + + cohere "github.com/cohere-ai/cohere-go/v2" + client "github.com/cohere-ai/cohere-go/v2/client" + ) + + func main() { + co := client.NewClient(client.WithToken("<>")) + + resp, err := co.Detokenize( + context.TODO(), + &cohere.DetokenizeRequest{ + Tokens: []int{10002, 1706, 1722, 5169, 4328}, + }, + ) + + if err != nil { + log.Fatal(err) + } + + log.Printf("%+v", resp) + } + - language: node + name: Cohere TypeScript SDK + install: npm i cohere-ai + code: | + const { CohereClient } = require('cohere-ai'); + + const cohere = new CohereClient({ + token: '<>', + }); + + (async () => { + const detokenize = await cohere.detokenize({ + tokens: [10002, 2261, 2012, 8, 2792, 43], + model: 'command', + }); + + console.log(detokenize); + })(); + - language: python + name: Sync + install: python -m pip install cohere --upgrade + code: > + import cohere + + + co = cohere.Client("<>") + + + response = co.detokenize( + tokens=[8466, 5169, 2594, 8, 2792, 43], model="command" # optional + ) + + print(response) + - language: python + name: Async + install: python -m pip install cohere --upgrade + code: > + import cohere + + import asyncio + + + co = cohere.AsyncClient("<>") + + + + async def main(): + response = await co.detokenize( + tokens=[8466, 5169, 2594, 8, 2792, 43], model="command" # optional + ) + print(response) + + asyncio.run(main()) + - language: java + name: Cohere java SDK + install: implementation 'com.cohere:cohere-java:1.0.4' + code: > + import com.cohere.api.Cohere; + + import com.cohere.api.requests.DetokenizeRequest; + + import com.cohere.api.types.DetokenizeResponse; + + + import java.util.List; + + + + public class DetokenizePost { + public static void main(String[] args) { + Cohere cohere = Cohere.builder().token("<>").clientName("snippet").build(); + + DetokenizeResponse response = cohere.detokenize( + DetokenizeRequest.builder().model("command").tokens(List.of(8466, 5169, 2594, 8, 2792, 43)).build() + ); + + System.out.println(response); + } + } + - language: curl + name: cURL + code: |- + curl --request POST \ + --url https://api.cohere.com/v1/detokenize \ + --header 'accept: application/json' \ + --header 'content-type: application/json' \ + --header "Authorization: bearer $CO_API_KEY" \ + --data '{ + "model": "command", + "tokens": [8466, 5169, 2594, 8, 2792, 43] + }' + responses: + "200": + description: OK + headers: + X-API-Warning: + schema: + type: string + x-fern-audiences: + - public + description: Warning description for incorrect usage of the API + content: + application/json: + schema: + type: object + x-fern-audiences: + - public + properties: + text: + type: string + x-fern-audiences: + - public + description: A string representing the list of tokens. + readOnly: true + meta: + $ref: "#/components/schemas/ApiMeta" + x-fern-audiences: + - public + required: + - text + examples: + Example: + value: + text: detokenized! :D + meta: + api_version: + version: "1" + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "422": + $ref: "#/components/responses/UnprocessableEntity" + "429": + $ref: "#/components/responses/RateLimit" + "498": + $ref: "#/components/responses/InvalidToken" + "499": + $ref: "#/components/responses/RequestCancelled" + "500": + $ref: "#/components/responses/InternalServerError" + "501": + $ref: "#/components/responses/NotImplemented" + "503": + $ref: "#/components/responses/ServiceUnavailable" + "504": + $ref: "#/components/responses/GatewayTimeout" + description: This endpoint takes tokens using byte-pair encoding and returns + their text representation. To learn more about tokenization and byte + pair encoding, see the tokens page. + requestBody: + content: + application/json: + schema: + type: object + x-fern-audiences: + - public + properties: + tokens: + type: array + x-fern-audiences: + - public + description: The list of tokens to be detokenized. + minItems: 1 + maxItems: 65536 + items: + type: integer + x-fern-audiences: + - public + writeOnly: true + model: + type: string + x-fern-audiences: + - public + description: An optional parameter to provide the model name. This will ensure + that the detokenization is done by the tokenizer used by + that model. + required: + - tokens + - model + examples: + Example: + value: + tokens: + - 10104 + - 12221 + - 1315 + - 34 + - 1420 + - 69 + model: command + description: "" + parameters: [] + /connectors: + get: + x-fern-audiences: + - public + summary: List Connectors + tags: + - /connectors + operationId: list-connectors + x-fern-sdk-method-name: list + x-fern-sdk-group-name: connectors + description: Returns a list of connectors ordered by descending creation date + (newer first). See ['Managing your + Connector'](https://docs.cohere.com/docs/managing-your-connector) for + more information. + parameters: + - name: limit + in: query + description: Maximum number of connectors to return [0, 100]. + schema: + default: 30 + type: number + x-fern-audiences: + - public + - name: offset + in: query + description: Number of connectors to skip before returning results [0, inf]. + schema: + default: 0 + type: number + x-fern-audiences: + - public + - $ref: "#/components/parameters/RequestSource" + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/ListConnectorsResponse" + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "422": + $ref: "#/components/responses/UnprocessableEntity" + "429": + $ref: "#/components/responses/RateLimit" + "498": + $ref: "#/components/responses/InvalidToken" + "499": + $ref: "#/components/responses/RequestCancelled" + "500": + $ref: "#/components/responses/InternalServerError" + "501": + $ref: "#/components/responses/NotImplemented" + "503": + $ref: "#/components/responses/ServiceUnavailable" + "504": + $ref: "#/components/responses/GatewayTimeout" + x-readme: + samples-languages: + - python + - java + - python + - java + - node + - curl + - go + code-samples: + - language: go + name: Cohere Go SDK + install: go get github.com/cohere-ai/cohere-go/v2 + code: | + package main + + import ( + "context" + "log" + + cohere "github.com/cohere-ai/cohere-go/v2" + client "github.com/cohere-ai/cohere-go/v2/client" + ) + + func main() { + co := client.NewClient(client.WithToken("<>")) + + resp, err := co.Connectors.List( + context.TODO(), + &cohere.ConnectorsListRequest{}) + + if err != nil { + log.Fatal(err) + } + + log.Printf("%+v", resp) + } + - language: python + name: Sync + install: python -m pip install cohere --upgrade + code: | + import cohere + + co = cohere.Client("<>") + response = co.connectors.list() + print(response) + - language: python + name: Async + install: python -m pip install cohere --upgrade + code: | + import cohere + import asyncio + + co = cohere.AsyncClient("<>") + + + async def main(): + response = await co.connectors.list() + print(response) + + asyncio.run(main()) + - language: java + name: Cohere java SDK + install: implementation 'com.cohere:cohere-java:1.0.4' + code: > + import com.cohere.api.Cohere; + + import com.cohere.api.types.ListConnectorsResponse; + + + + public class ConnectorsList { + public static void main(String[] args) { + Cohere cohere = Cohere.builder().token("<>").clientName("snippet").build(); + + ListConnectorsResponse list = cohere.connectors().list(); + + System.out.println(list); + } + } + - language: node + name: Cohere TypeScript SDK + install: npm i cohere-ai + code: | + const { CohereClient } = require('cohere-ai'); + + const cohere = new CohereClient({ + token: '<>', + }); + + (async () => { + const connectors = await cohere.connectors.list(); + + console.log(connectors); + })(); + - language: curl + name: cURL + code: |- + curl --request GET \ + --url https://api.cohere.com/v1/connectors \ + --header 'accept: application/json' \ + --header "Authorization: bearer $CO_API_KEY" + post: + x-fern-audiences: + - public + summary: Create a Connector + tags: + - /connectors + operationId: create-connector + x-fern-sdk-method-name: create + x-fern-sdk-group-name: connectors + description: Creates a new connector. The connector is tested during + registration and will cancel registration when the test is unsuccessful. + See ['Creating and Deploying a + Connector'](https://docs.cohere.com/docs/creating-and-deploying-a-connector) + for more information. + parameters: + - $ref: "#/components/parameters/RequestSource" + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/CreateConnectorRequest" + required: true + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/CreateConnectorResponse" + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "422": + $ref: "#/components/responses/UnprocessableEntity" + "429": + $ref: "#/components/responses/RateLimit" + "498": + $ref: "#/components/responses/InvalidToken" + "499": + $ref: "#/components/responses/RequestCancelled" + "500": + $ref: "#/components/responses/InternalServerError" + "501": + $ref: "#/components/responses/NotImplemented" + "503": + $ref: "#/components/responses/ServiceUnavailable" + "504": + $ref: "#/components/responses/GatewayTimeout" + x-readme: + samples-languages: + - python + - java + - python + - java + - node + - curl + - go + code-samples: + - language: go + name: Cohere Go SDK + install: go get github.com/cohere-ai/cohere-go/v2 + code: | + package main + + import ( + "context" + "log" + + cohere "github.com/cohere-ai/cohere-go/v2" + client "github.com/cohere-ai/cohere-go/v2/client" + ) + + func main() { + co := client.NewClient(client.WithToken("<>")) + + resp, err := co.Connectors.Create( + context.TODO(), + &cohere.CreateConnectorRequest{ + Name: "Example connector", + Url: "https://you-connector-url", + ServiceAuth: &cohere.CreateConnectorServiceAuth{ + Token: "dummy-connector-token", + Type: "bearer", + }, + }, + ) + + if err != nil { + log.Fatal(err) + } + + log.Printf("%+v", resp) + } + - language: python + name: Sync + install: python -m pip install cohere --upgrade + code: | + import cohere + + co = cohere.Client("<>") + response = co.connectors.create( + name="Example connector", + url="https://connector-example.com/search", + ) + print(response) + - language: python + name: Async + install: python -m pip install cohere --upgrade + code: | + import cohere + import asyncio + + co = cohere.AsyncClient("<>") + + + async def main(): + response = await co.connectors.create( + name="Example connector", + url="https://connector-example.com/search", + ) + print(response) + + asyncio.run(main()) + - language: java + name: Cohere java SDK + install: implementation 'com.cohere:cohere-java:1.0.4' + code: > + import com.cohere.api.Cohere; + + import + com.cohere.api.resources.connectors.requests.CreateConnectorRequest; + + import com.cohere.api.types.CreateConnectorResponse; + + + + public class ConnectorCreate { + public static void main(String[] args) { + Cohere cohere = Cohere.builder().token("<>").clientName("snippet").build(); + + CreateConnectorResponse response = cohere.connectors().create(CreateConnectorRequest.builder() + .name("Example connector") + .url("https://connector-example.com/search").build()); + + System.out.println(response); + } + } + - language: node + name: Cohere TypeScript SDK + install: npm i cohere-ai + code: | + const { CohereClient } = require('cohere-ai'); + + const cohere = new CohereClient({ + token: '<>', + }); + + (async () => { + const connector = await cohere.connectors.create({ + name: 'test-connector', + url: 'https://example.com/search', + description: 'A test connector', + }); + + console.log(connector); + })(); + - language: curl + name: Curl + code: |- + curl --request POST \ + --url https://api.cohere.com/v1/connectors \ + --header 'accept: application/json' \ + --header 'content-type: application/json' \ + --header "Authorization: bearer $CO_API_KEY" \ + --data '{ + "name": "Example connector", + "url": "https://connector-example.com/search" + }' + "/connectors/{id}": + get: + x-fern-audiences: + - public + summary: Get a Connector + tags: + - /connectors + description: Retrieve a connector by ID. See + ['Connectors'](https://docs.cohere.com/docs/connectors) for more + information. + operationId: get-connector + x-fern-sdk-method-name: get + x-fern-sdk-group-name: connectors + parameters: + - name: id + in: path + required: true + description: The ID of the connector to retrieve. + schema: + type: string + x-fern-audiences: + - public + - $ref: "#/components/parameters/RequestSource" + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/GetConnectorResponse" + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "422": + $ref: "#/components/responses/UnprocessableEntity" + "429": + $ref: "#/components/responses/RateLimit" + "498": + $ref: "#/components/responses/InvalidToken" + "499": + $ref: "#/components/responses/RequestCancelled" + "500": + $ref: "#/components/responses/InternalServerError" + "501": + $ref: "#/components/responses/NotImplemented" + "503": + $ref: "#/components/responses/ServiceUnavailable" + "504": + $ref: "#/components/responses/GatewayTimeout" + x-readme: + samples-languages: + - python + - java + - node + - curl + - go + code-samples: + - language: go + name: Cohere Go SDK + install: go get github.com/cohere-ai/cohere-go/v2 + code: | + package main + + import ( + "context" + "log" + + client "github.com/cohere-ai/cohere-go/v2/client" + ) + + func main() { + co := client.NewClient(client.WithToken("<>")) + + resp, err := co.Connectors.Get(context.TODO(), "connector_id") + + if err != nil { + log.Fatal(err) + } + + log.Printf("%+v", resp) + } + - language: python + name: Sync + install: python -m pip install cohere --upgrade + code: | + import cohere + + co = cohere.Client("<>") + response = co.connectors.get("test-id") + print(response) + - language: python + name: Async + install: python -m pip install cohere --upgrade + code: | + import cohere + import asyncio + + co = cohere.AsyncClient("<>") + + + async def main(): + response = await co.connectors.get("test-id") + print(response) + + asyncio.run(main()) + - language: java + name: Cohere java SDK + install: implementation 'com.cohere:cohere-java:1.0.4' + code: > + import com.cohere.api.Cohere; + + import com.cohere.api.types.GetConnectorResponse; + + + + public class ConnectorGet { + public static void main(String[] args) { + Cohere cohere = Cohere.builder().token("<>").clientName("snippet").build(); + + GetConnectorResponse response = cohere.connectors().get("test-id"); + + System.out.println(response); + } + } + - language: node + name: Cohere TypeScript SDK + install: npm i cohere-ai + code: | + const { CohereClient } = require('cohere-ai'); + + const cohere = new CohereClient({ + token: '<>', + }); + + (async () => { + const connector = await cohere.connectors.get('connector-id'); + + console.log(connector); + })(); + - language: curl + name: cURL + code: |- + curl --request GET \ + --url https://api.cohere.com/v1/connectors/id \ + --header 'accept: application/json' \ + --header "Authorization: bearer $CO_API_KEY" + patch: + x-fern-audiences: + - public + summary: Update a Connector + tags: + - /connectors + operationId: update-connector + x-fern-sdk-method-name: update + x-fern-sdk-group-name: connectors + description: Update a connector by ID. Omitted fields will not be updated. See + ['Managing your + Connector'](https://docs.cohere.com/docs/managing-your-connector) for + more information. + parameters: + - name: id + in: path + required: true + description: The ID of the connector to update. + schema: + type: string + x-fern-audiences: + - public + - $ref: "#/components/parameters/RequestSource" + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/UpdateConnectorRequest" + required: true + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/UpdateConnectorResponse" + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "422": + $ref: "#/components/responses/UnprocessableEntity" + "429": + $ref: "#/components/responses/RateLimit" + "498": + $ref: "#/components/responses/InvalidToken" + "499": + $ref: "#/components/responses/RequestCancelled" + "500": + $ref: "#/components/responses/InternalServerError" + "501": + $ref: "#/components/responses/NotImplemented" + "503": + $ref: "#/components/responses/ServiceUnavailable" + "504": + $ref: "#/components/responses/GatewayTimeout" + x-readme: + samples-languages: + - python + - java + - node + - curl + - go + code-samples: + - language: go + name: Cohere Go SDK + install: go get github.com/cohere-ai/cohere-go/v2 + code: | + package main + + import ( + "context" + "log" + + cohere "github.com/cohere-ai/cohere-go/v2" + client "github.com/cohere-ai/cohere-go/v2/client" + ) + + func main() { + co := client.NewClient(client.WithToken("<>")) + + resp, err := co.Connectors.Update( + context.TODO(), + "connector_id", + &cohere.UpdateConnectorRequest{ + Name: cohere.String("Example connector renamed"), + }, + ) + + if err != nil { + log.Fatal(err) + } + + log.Printf("%+v", resp) + } + - language: python + name: Sync + install: python -m pip install cohere --upgrade + code: > + import cohere + + + co = cohere.Client("<>") + + response = co.connectors.update( + connector_id="test-id", name="new name", url="https://example.com/search" + ) + + print(response) + - language: python + name: Async + install: python -m pip install cohere --upgrade + code: > + import cohere + + import asyncio + + + co = cohere.AsyncClient("<>") + + + + async def main(): + response = await co.connectors.update( + connector_id="test-id", name="new name", url="https://example.com/search" + ) + print(response) + + asyncio.run(main()) + - language: java + name: Cohere java SDK + install: implementation 'com.cohere:cohere-java:1.0.4' + code: > + import com.cohere.api.Cohere; + + import + com.cohere.api.resources.connectors.requests.UpdateConnectorRequest; + + + + public class ConnectorPatch { + public static void main(String[] args) { + Cohere cohere = Cohere.builder().token("<>").clientName("snippet").build(); + + cohere.connectors().update("test-id", UpdateConnectorRequest.builder() + .name("new name") + .url("https://connector-example.com/search").build()); + } + } + - language: node + name: Cohere TypeScript SDK + install: npm i cohere-ai + code: | + const { CohereClient } = require('cohere-ai'); + + const cohere = new CohereClient({ + token: '<>', + }); + + (async () => { + const connector = await cohere.connectors.update(connector.id, { + name: 'test-connector-renamed', + description: 'A test connector renamed', + }); + + console.log(connector); + })(); + - language: curl + name: Curl + code: |- + curl --request PATCH \ + --url https://api.cohere.com/v1/connectors/id \ + --header 'accept: application/json' \ + --header 'content-type: application/json' \ + --header "Authorization: bearer $CO_API_KEY" \ + --data '{ + "name": "new name", + "url": "https://example.com/search" + }' + delete: + x-fern-audiences: + - public + summary: Delete a Connector + tags: + - /connectors + description: Delete a connector by ID. See + ['Connectors'](https://docs.cohere.com/docs/connectors) for more + information. + operationId: delete-connector + x-fern-sdk-method-name: delete + x-fern-sdk-group-name: connectors + parameters: + - name: id + description: The ID of the connector to delete. + in: path + required: true + schema: + type: string + x-fern-audiences: + - public + - $ref: "#/components/parameters/RequestSource" + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/DeleteConnectorResponse" + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "422": + $ref: "#/components/responses/UnprocessableEntity" + "429": + $ref: "#/components/responses/RateLimit" + "498": + $ref: "#/components/responses/InvalidToken" + "499": + $ref: "#/components/responses/RequestCancelled" + "500": + $ref: "#/components/responses/InternalServerError" + "501": + $ref: "#/components/responses/NotImplemented" + "503": + $ref: "#/components/responses/ServiceUnavailable" + "504": + $ref: "#/components/responses/GatewayTimeout" + x-readme: + samples-languages: + - python + - java + - node + - curl + - go + code-samples: + - language: go + name: Cohere Go SDK + install: go get github.com/cohere-ai/cohere-go/v2 + code: | + package main + + import ( + "context" + "log" + + client "github.com/cohere-ai/cohere-go/v2/client" + ) + + func main() { + co := client.NewClient(client.WithToken("<>")) + + resp, err := co.Connectors.Delete(context.TODO(), "connector_id") + + if err != nil { + log.Fatal(err) + } + + log.Printf("%+v", resp) + } + - language: node + name: Cohere TypeScript SDK + install: npm i cohere-ai + code: | + const { CohereClient } = require('cohere-ai'); + + const cohere = new CohereClient({ + token: '<>', + }); + + (async () => { + await cohere.connectors.delete('connector-id'); + })(); + - language: python + name: Sync + install: python -m pip install cohere --upgrade + code: | + import cohere + + co = cohere.Client("<>") + co.connectors.delete("test-id") + - language: python + name: Async + install: python -m pip install cohere --upgrade + code: | + import cohere + import asyncio + + co = cohere.AsyncClient("<>") + + + async def main(): + await co.connectors.delete("test-id") + + asyncio.run(main()) + - language: java + name: Cohere java SDK + install: implementation 'com.cohere:cohere-java:1.0.4' + code: >+ + import com.cohere.api.Cohere; + + + + public class ConnectorDelete { + public static void main(String[] args) { + Cohere cohere = Cohere.builder().token("<>").clientName("snippet").build(); + + cohere.connectors().delete("test-id"); + } + } + + - language: curl + name: cURL + code: |- + curl --request DELETE \ + --url https://api.cohere.com/v1/connectors/id \ + --header 'accept: application/json' \ + --header "Authorization: bearer $CO_API_KEY" + "/connectors/{id}/oauth/authorize": + post: + x-fern-audiences: + - public + summary: Authorize with oAuth + tags: + - /connectors + description: Authorize the connector with the given ID for the connector oauth + app. See ['Connector + Authentication'](https://docs.cohere.com/docs/connector-authentication) + for more information. + operationId: oAuthAuthorize-connector + x-fern-sdk-method-name: oAuthAuthorize + x-fern-sdk-group-name: connectors + parameters: + - name: id + in: path + required: true + description: The ID of the connector to authorize. + schema: + type: string + x-fern-audiences: + - public + - name: after_token_redirect + in: query + description: The URL to redirect to after the connector has been authorized. + schema: + type: string + x-fern-audiences: + - public + - $ref: "#/components/parameters/RequestSource" + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/OAuthAuthorizeResponse" + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "422": + $ref: "#/components/responses/UnprocessableEntity" + "429": + $ref: "#/components/responses/RateLimit" + "498": + $ref: "#/components/responses/InvalidToken" + "499": + $ref: "#/components/responses/RequestCancelled" + "500": + $ref: "#/components/responses/InternalServerError" + "501": + $ref: "#/components/responses/NotImplemented" + "503": + $ref: "#/components/responses/ServiceUnavailable" + "504": + $ref: "#/components/responses/GatewayTimeout" + x-readme: + samples-languages: + - python + - java + - python + - java + - node + - curl + - go + code-samples: + - language: go + name: Cohere Go SDK + install: go get github.com/cohere-ai/cohere-go/v2 + code: | + package main + + import ( + "context" + "log" + + cohere "github.com/cohere-ai/cohere-go/v2" + client "github.com/cohere-ai/cohere-go/v2/client" + ) + + func main() { + co := client.NewClient(client.WithToken("<>")) + + resp, err := co.Connectors.OAuthAuthorize( + context.TODO(), + "connector_id", + &cohere.ConnectorsOAuthAuthorizeRequest{ + AfterTokenRedirect: cohere.String("https://test.com"), + }, + ) + + if err != nil { + log.Fatal(err) + } + + log.Printf("%+v", resp) + } + - language: python + name: Sync + install: python -m pip install cohere --upgrade + code: > + import cohere + + + co = cohere.Client("<>") + + response = co.connectors.o_auth_authorize( + connector_id="test-id", after_token_redirect="https://test.com" + ) + + print(response) + - language: python + name: Async + install: python -m pip install cohere --upgrade + code: > + import cohere + + import asyncio + + + co = cohere.AsyncClient("<>") + + + + async def main(): + response = await co.connectors.o_auth_authorize( + connector_id="test-id", after_token_redirect="https://test.com" + ) + print(response) + + asyncio.run(main()) + - language: java + name: Cohere java SDK + install: implementation 'com.cohere:cohere-java:1.0.4' + code: > + import com.cohere.api.Cohere; + + import + com.cohere.api.resources.connectors.requests.ConnectorsOAuthAuthorizeRequest; + + import com.cohere.api.types.OAuthAuthorizeResponse; + + + + public class ConnectorsIdOauthAuthorizePost { + public static void main(String[] args) { + Cohere cohere = Cohere.builder().token("<>").clientName("snippet").build(); + + OAuthAuthorizeResponse response = cohere.connectors().oAuthAuthorize("test-id", ConnectorsOAuthAuthorizeRequest.builder().afterTokenRedirect("https://connector-example.com/search").build()); + + System.out.println(response); + } + } + - language: node + name: Cohere TypeScript SDK + install: npm i cohere-ai + code: > + const { CohereClient } = require('cohere-ai'); + + + const cohere = new CohereClient({ + token: '<>', + }); + + + (async () => { + const connector = await cohere.connectors.oAuthAuthorize('connector-id', { + redirect_uri: 'https://example.com/oauth/callback', + }); + + console.log(connector); + })(); + - language: curl + name: cURL + code: |- + curl --request POST \ + --url https://api.cohere.com/v1/connectors/id/oauth/authorize \ + --header 'accept: application/json' \ + --header "Authorization: bearer $CO_API_KEY" + "/models/{model}": + get: + summary: Get a Model + tags: + - /models + operationId: get-model + x-fern-sdk-method-name: get + x-fern-sdk-group-name: models + x-fern-audiences: + - public + description: Returns the details of a model, provided its name. + parameters: + - name: model + in: path + required: true + schema: + type: string + x-fern-audiences: + - public + example: command-r + - $ref: "#/components/parameters/RequestSource" + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/GetModelResponse" + headers: + X-API-Warning: + schema: + type: string + x-fern-audiences: + - public + description: Warning description for incorrect usage of the API + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "422": + $ref: "#/components/responses/UnprocessableEntity" + "429": + $ref: "#/components/responses/RateLimit" + "498": + $ref: "#/components/responses/InvalidToken" + "499": + $ref: "#/components/responses/RequestCancelled" + "500": + $ref: "#/components/responses/InternalServerError" + "501": + $ref: "#/components/responses/NotImplemented" + "503": + $ref: "#/components/responses/ServiceUnavailable" + "504": + $ref: "#/components/responses/GatewayTimeout" + /models: + get: + x-fern-audiences: + - public + summary: List Models + tags: + - /models + operationId: list-models + x-fern-sdk-method-name: list + x-fern-sdk-group-name: models + description: Returns a list of models available for use. The list contains + models from Cohere as well as your fine-tuned models. + parameters: + - name: page_size + in: query + description: |- + Maximum number of models to include in a page + Defaults to `20`, min value of `1`, max value of `1000`. + schema: + type: number + x-fern-audiences: + - public + - name: page_token + description: Page token provided in the `next_page_token` field of a previous + response. + in: query + schema: + type: string + x-fern-audiences: + - public + - name: endpoint + in: query + description: When provided, filters the list of models to only those that are + compatible with the specified endpoint. + schema: + $ref: "#/components/schemas/CompatibleEndpoint" + x-fern-audiences: + - public + - name: default_only + in: query + description: When provided, filters the list of models to only the default model + to the endpoint. This parameter is only valid when `endpoint` is + provided. + schema: + type: boolean + x-fern-audiences: + - public + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/ListModelsResponse" + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "422": + $ref: "#/components/responses/UnprocessableEntity" + "429": + $ref: "#/components/responses/RateLimit" + "498": + $ref: "#/components/responses/InvalidToken" + "499": + $ref: "#/components/responses/RequestCancelled" + "500": + $ref: "#/components/responses/InternalServerError" + "501": + $ref: "#/components/responses/NotImplemented" + "503": + $ref: "#/components/responses/ServiceUnavailable" + "504": + $ref: "#/components/responses/GatewayTimeout" + x-readme: + samples-languages: + - node + - curl + - python + - java + - go + code-samples: + - language: python + name: Sync + install: python -m pip install cohere --upgrade + code: | + import cohere + + co = cohere.Client("<>") + response = co.models.list() + print(response) + - language: python + name: Async + install: python -m pip install cohere --upgrade + code: | + import cohere + import asyncio + + co = cohere.AsyncClient("<>") + + + async def main(): + response = await co.models.list() + print(response) + + asyncio.run(main()) + - language: java + name: Cohere java SDK + install: implementation 'com.cohere:cohere-java:1.0.4' + code: > + import com.cohere.api.Cohere; + + import com.cohere.api.types.ListModelsResponse; + + + + public class ModelsListGet { + public static void main(String[] args) { + Cohere cohere = Cohere.builder().token("<>").clientName("snippet").build(); + + ListModelsResponse response = cohere.models().list(); + + System.out.println(response); + } + } + - language: curl + name: cURL + code: |- + curl --request GET \ + --url https://api.cohere.com/v1/models \ + --header 'accept: application/json' \ + --header "Authorization: bearer $CO_API_KEY" + - language: node + name: Cohere TypeScript SDK + install: npm i cohere-ai + code: | + const { CohereClient } = require('cohere-ai'); + + const cohere = new CohereClient({ + token: '<>', + }); + + (async () => { + const models = await cohere.models.list(); + + console.log(models); + })(); + - language: go + name: Cohere Go SDK + install: go get github.com/cohere-ai/cohere-go/v2 + code: > + package main + + + import ( + "context" + "log" + + cohere "github.com/cohere-ai/cohere-go/v2" + client "github.com/cohere-ai/cohere-go/v2/client" + ) + + + func main() { + co := client.NewClient(client.WithToken("<>")) + + resp, err := co.Models.List(context.TODO(), &cohere.ModelsListRequest{}) + + if err != nil { + log.Fatal(err) + } + + log.Printf("%+v", resp) + } + /check-api-key: + post: + parameters: + - $ref: "#/components/parameters/RequestSource" + x-fern-audiences: + - public + summary: Check API key + operationId: checkAPIKey + description: | + Checks that the api key in the Authorization header is valid and active + responses: + "200": + description: OK + content: + application/json: + schema: + type: object + required: + - valid + properties: + valid: + type: boolean + organization_id: + type: string + owner_id: + type: string + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "422": + $ref: "#/components/responses/UnprocessableEntity" + "429": + $ref: "#/components/responses/RateLimit" + "498": + $ref: "#/components/responses/InvalidToken" + "499": + $ref: "#/components/responses/RequestCancelled" + "500": + $ref: "#/components/responses/InternalServerError" + "501": + $ref: "#/components/responses/NotImplemented" + "503": + $ref: "#/components/responses/ServiceUnavailable" + "504": + $ref: "#/components/responses/GatewayTimeout" + /finetuning/finetuned-models: + get: + summary: Lists fine-tuned models. + operationId: ListFinetunedModels + responses: + "200": + description: A successful response. + content: + application/json: + schema: + $ref: "#/components/schemas/ListFinetunedModelsResponse" + example: + finetuned_models: + - id: fee37446-7fc7-42f9-a026-c6ba2fcc422d + name: prompt-completion-ft + creator_id: 7a317d97-4d05-427d-9396-f31b9fb92c55 + organization_id: 6bdca3d5-3eae-4de0-ac34-786d8063b7ee + settings: + base_model: + name: medium + version: 14.2.0 + base_type: BASE_TYPE_GENERATIVE + strategy: STRATEGY_TFEW + dataset_id: my-dataset-d701tr + hyperparameters: + early_stopping_patience: 6 + early_stopping_threshold: 0.01 + train_batch_size: 16 + train_epochs: 1 + learning_rate: 0.01 + status: STATUS_READY + created_at: 2024-01-17T20:11:42.907112Z + updated_at: 2024-01-17T20:31:06.464015Z + completed_at: 2024-01-17T20:31:05.047066Z + - id: 9d927c5e-7598-4772-98b7-cdf2014e8874 + name: rerank-ft + creator_id: 7a317d97-4d05-427d-9396-f31b9fb92c55 + organization_id: 6bdca3d5-3eae-4de0-ac34-786d8063b7ee + settings: + base_model: + name: english + version: 2.0.0 + base_type: BASE_TYPE_RERANK + strategy: STRATEGY_VANILLA + dataset_id: rerank-dataset-d820xf + status: STATUS_READY + created_at: 2024-01-17T20:17:16.997608Z + updated_at: 2024-01-17T20:50:11.148769Z + completed_at: 2024-01-17T20:42:55.821051Z + "400": + description: Bad Request + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + "401": + description: Unauthorized + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + "403": + description: Forbidden + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + "404": + description: Not Found + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + "500": + description: Internal Server Error + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + "503": + description: Status Service Unavailable + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + parameters: + - name: page_size + description: |- + Maximum number of results to be returned by the server. If 0, defaults to + 50. + in: query + required: false + schema: + type: integer + format: int32 + - name: page_token + description: Request a specific page of the list results. + in: query + required: false + schema: + type: string + - name: order_by + description: |- + Comma separated list of fields. For example: "created_at,name". The default + sorting order is ascending. To specify descending order for a field, append + " desc" to the field name. For example: "created_at desc,name". + + Supported sorting fields: + - created_at (default) + in: query + required: false + schema: + type: string + - $ref: "#/components/parameters/RequestSource" + tags: + - /finetuning + x-readme: + samples-languages: + - python + - java + - go + - node + - curl + code-samples: + - language: java + name: Cohere java SDK + install: implementation 'com.cohere:cohere-java' + code: > + package finetuning; + + + import com.cohere.api.Cohere; + + import + com.cohere.api.resources.finetuning.finetuning.types.ListFinetunedModelsResponse; + + + + public class ListFinetunedModels { + public static void main(String[] args) { + Cohere cohere = Cohere.builder().token("<>").clientName("snippet").build(); + + ListFinetunedModelsResponse response = cohere.finetuning().listFinetunedModels(); + + System.out.println(response); + } + } + - language: go + name: Cohere Go SDK + install: go get github.com/cohere-ai/cohere-go/v2 + code: > + package main + + + import ( + "context" + "log" + + "github.com/cohere-ai/cohere-go/v2/client" + ) + + + func main() { + co := client.NewClient(client.WithToken("<>")) + + resp, err := co.Finetuning.ListFinetunedModels(context.TODO(), nil) + if err != nil { + log.Fatal(err) + } + + log.Printf("%+v", resp.FinetunedModels) + } + - language: node + name: Cohere TypeScript SDK + install: npm i cohere-ai + code: > + const { CohereClient } = require('cohere-ai'); + + + const cohere = new CohereClient({ + token: '<>', + }); + + + (async () => { + const finetunedModels = await cohere.finetuning.listFinetunedModels(); + + console.log(finetunedModels); + })(); + - language: python + name: Sync + install: python -m pip install cohere --upgrade + code: | + import cohere + + co = cohere.Client("<>") + response = co.finetuning.list_finetuned_models() + print(response) + - language: python + name: Async + install: python -m pip install cohere --upgrade + code: | + import cohere + import asyncio + + co = cohere.AsyncClient("<>") + + + async def main(): + response = await co.finetuning.list_finetuned_models() + print(response) + + asyncio.run(main()) + - language: curl + name: cURL + code: | + curl --request GET \ + --url https://api.cohere.com/v1/finetuning/finetuned-models \ + --header 'accept: application/json' \ + --header "Authorization: bearer $CO_API_KEY" + x-fern-sdk-group-name: finetuning + x-fern-audiences: + - public + x-fern-request-name: FinetuningListFinetunedModelsRequest + post: + summary: Trains and deploys a fine-tuned model. + operationId: CreateFinetunedModel + responses: + "200": + description: A successful response. + content: + application/json: + schema: + $ref: "#/components/schemas/CreateFinetunedModelResponse" + "400": + description: Bad Request + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + "401": + description: Unauthorized + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + "403": + description: Forbidden + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + "404": + description: Not Found + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + "500": + description: Internal Server Error + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + "503": + description: Status Service Unavailable + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + tags: + - /finetuning + requestBody: + description: Information about the fine-tuned model. Must contain name and settings. + content: + application/json: + schema: + $ref: "#/components/schemas/FinetunedModel" + required: + - finetuned_model + example: + name: api-test + settings: + base_model: + base_type: BASE_TYPE_GENERATIVE + dataset_id: my-dataset-id + required: true + parameters: + - $ref: "#/components/parameters/RequestSource" + x-readme: + samples-languages: + - python + - java + - go + - node + - curl + code-samples: + - language: java + name: Cohere java SDK + install: implementation 'com.cohere:cohere-java' + code: >+ + package finetuning; + + + import com.cohere.api.Cohere; + + import com.cohere.api.resources.finetuning.finetuning.types.*; + + + public class CreateFinetunedModel { + public static void main(String[] args) { + Cohere cohere = Cohere.builder().token("<>").clientName("snippet").build(); + + CreateFinetunedModelResponse response = cohere.finetuning().createFinetunedModel(FinetunedModel.builder().name("test-finetuned-model").settings(Settings.builder().baseModel(BaseModel.builder().baseType(BaseType.BASE_TYPE_GENERATIVE).build()).datasetId("my-dataset-id").build()).build()); + + System.out.println(response); + } + } + + + - language: go + name: Cohere Go SDK + install: go get github.com/cohere-ai/cohere-go/v2 + code: | + package main + + import ( + "context" + "log" + + "github.com/cohere-ai/cohere-go/v2/client" + "github.com/cohere-ai/cohere-go/v2/finetuning" + ) + + func main() { + co := client.NewClient(client.WithToken("<>")) + + resp, err := co.Finetuning.CreateFinetunedModel( + context.TODO(), + &finetuning.FinetunedModel{ + Name: "test-finetuned-model", + Settings: &finetuning.Settings{ + DatasetId: "my-dataset-id", + BaseModel: &finetuning.BaseModel{ + BaseType: finetuning.BaseTypeBaseTypeGenerative, + }, + }, + }, + ) + if err != nil { + log.Fatal(err) + } + + log.Printf("%+v", resp.FinetunedModel) + } + - language: node + name: Cohere TypeScript SDK + install: npm i cohere-ai + code: > + const { Cohere, CohereClient } = require('cohere-ai'); + + + const cohere = new CohereClient({ + token: '<>', + }); + + + (async () => { + const finetunedModel = await cohere.finetuning.createFinetunedModel({ + name: 'test-finetuned-model', + settings: { + base_model: { + base_type: Cohere.Finetuning.BaseType.BaseTypeGenerative, + }, + dataset_id: 'test-dataset-id', + }, + }); + + console.log(finetunedModel); + })(); + - language: python + name: Sync + install: python -m pip install cohere --upgrade + code: | + from cohere.finetuning import ( + BaseModel, + FinetunedModel, + Hyperparameters, + Settings, + ) + import cohere + + co = cohere.Client("<>") + hp = Hyperparameters( + early_stopping_patience=10, + early_stopping_threshold=0.001, + train_batch_size=16, + train_epoch=1, + learning_rate=0.01, + ) + finetuned_model = co.finetuning.create_finetuned_model( + request=FinetunedModel( + name="test-finetuned-model", + settings=Settings( + base_model=BaseModel( + base_type="BASE_TYPE_CHAT", + ), + dataset_id="my-dataset-id", + hyperparameters=hp, + ), + ) + ) + print(response) + - language: python + name: Async + install: python -m pip install cohere --upgrade + code: | + from cohere.finetuning import ( + BaseModel, + BaseType, + FinetunedModel, + Settings, + ) + import cohere + import asyncio + + co = cohere.AsyncClient("<>") + + + async def main(): + response = await co.finetuning.create_finetuned_model( + request=FinetunedModel( + name="test-finetuned-model", + settings=Settings( + base_model=BaseModel( + base_type=BaseType.BASE_TYPE_GENERATIVE, + ), + dataset_id="my-dataset-id", + ), + ) + ) + print(response) + + asyncio.run(main()) + - language: curl + name: cURL + code: | + curl --request POST \ + --url https://api.cohere.com/v1/finetuning/finetuned-models \ + --header 'accept: application/json' \ + --header 'content-type: application/json' \ + --header "Authorization: bearer $CO_API_KEY" \ + --data '{ + "name": "test-finetuned-model", + "settings": { + "base_model": { + "base_type": "BASE_TYPE_GENERATIVE", + }, + "dataset_id": "test-dataset-id" + } + }' + x-fern-sdk-group-name: finetuning + x-fern-audiences: + - public + "/finetuning/finetuned-models/{id}": + patch: + summary: Updates a fine-tuned model. + operationId: UpdateFinetunedModel + responses: + "200": + description: A successful response. + content: + application/json: + schema: + $ref: "#/components/schemas/UpdateFinetunedModelResponse" + "400": + description: Bad Request + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + "401": + description: Unauthorized + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + "403": + description: Forbidden + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + "404": + description: Not Found + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + "500": + description: Internal Server Error + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + "503": + description: Status Service Unavailable + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + parameters: + - name: id + description: FinetunedModel ID. + in: path + required: true + schema: + type: string + - $ref: "#/components/parameters/RequestSource" + tags: + - /finetuning + requestBody: + description: Information about the fine-tuned model. Must contain name and settings. + content: + application/json: + schema: + type: object + properties: + name: + type: string + description: FinetunedModel name (e.g. `foobar`). + creator_id: + type: string + description: User ID of the creator. + readOnly: true + organization_id: + type: string + description: Organization ID. + readOnly: true + settings: + $ref: "#/components/schemas/Settings" + description: FinetunedModel settings such as dataset, hyperparameters... + status: + $ref: "#/components/schemas/Status" + description: Current stage in the life-cycle of the fine-tuned model. + readOnly: true + created_at: + type: string + format: date-time + description: Creation timestamp. + readOnly: true + updated_at: + type: string + format: date-time + description: Latest update timestamp. + readOnly: true + completed_at: + type: string + format: date-time + description: Timestamp for the completed fine-tuning. + readOnly: true + last_used: + type: string + format: date-time + description: Timestamp for the latest request to this fine-tuned model. + readOnly: true + title: Information about the fine-tuned model. Must contain name and settings. + required: + - name + - settings + required: true + x-readme: + samples-languages: + - python + - java + - go + - node + - curl + code-samples: + - language: java + name: Cohere java SDK + install: implementation 'com.cohere:cohere-java' + code: > + package finetuning; + + + import com.cohere.api.Cohere; + + import + com.cohere.api.resources.finetuning.finetuning.types.BaseModel; + + import + com.cohere.api.resources.finetuning.finetuning.types.BaseType; + + import + com.cohere.api.resources.finetuning.finetuning.types.Settings; + + import + com.cohere.api.resources.finetuning.finetuning.types.UpdateFinetunedModelResponse; + + import + com.cohere.api.resources.finetuning.requests.FinetuningUpdateFinetunedModelRequest; + + + + public class UpdateFinetunedModel { + public static void main(String[] args) { + Cohere cohere = Cohere.builder().token("<>").clientName("snippet").build(); + + UpdateFinetunedModelResponse response = cohere.finetuning().updateFinetunedModel("test-id", FinetuningUpdateFinetunedModelRequest.builder().name("new name").settings(Settings.builder().baseModel(BaseModel.builder().baseType(BaseType.BASE_TYPE_GENERATIVE).build()).datasetId("my-dataset-id").build()).build()); + + System.out.println(response); + } + } + - language: go + name: Cohere Go SDK + install: go get github.com/cohere-ai/cohere-go/v2 + code: | + package main + + import ( + "context" + "log" + + cohere "github.com/cohere-ai/cohere-go/v2" + "github.com/cohere-ai/cohere-go/v2/client" + ) + + func main() { + co := client.NewClient(client.WithToken("<>")) + + resp, err := co.Finetuning.UpdateFinetunedModel( + context.TODO(), + "test-id", + &cohere.FinetuningUpdateFinetunedModelRequest{ + Name: "new-name", + }, + ) + if err != nil { + log.Fatal(err) + } + + log.Printf("%+v", resp.FinetunedModel) + } + - language: node + name: Cohere TypeScript SDK + install: npm i cohere-ai + code: > + const { CohereClient } = require('cohere-ai'); + + + const cohere = new CohereClient({ + token: '<>', + }); + + + (async () => { + const finetunedModel = await cohere.finetuning.updateFinetunedModel('test-id', { + name: 'new name', + }); + + console.log(finetunedModel); + })(); + - language: python + name: Sync + install: python -m pip install cohere --upgrade + code: | + import cohere + + co = cohere.Client("<>") + finetuned_model = co.finetuning.update_finetuned_model( + id="test-id", + name="new name", + settings=Settings( + base_model=BaseModel( + base_type="BASE_TYPE_CHAT", + ), + dataset_id="my-dataset-id",) + ) + + print(finetuned_model) + - language: python + name: Async + install: python -m pip install cohere --upgrade + code: > + import cohere + + import asyncio + + + co = cohere.AsyncClient("<>") + + + + async def main(): + response = await co.finetuning.update_finetuned_model(id="test-id", name="new name") + print(response) + + asyncio.run(main()) + - language: curl + name: cURL + code: > + curl --request PATCH \ + --url https://api.cohere.com/v1/finetuning/finetuned-models/test-id \ + --header 'accept: application/json' \ + --header 'content-type: application/json' \ + --header "Authorization: bearer $CO_API_KEY" \ + --data '{ "name": "new name" }' + x-fern-sdk-group-name: finetuning + x-fern-audiences: + - public + x-fern-request-name: FinetuningUpdateFinetunedModelRequest + get: + summary: Returns a fine-tuned model by ID. + operationId: GetFinetunedModel + responses: + "200": + description: A successful response. + content: + application/json: + schema: + $ref: "#/components/schemas/GetFinetunedModelResponse" + example: + finetuned_model: + id: fee37446-7fc7-42f9-a026-c6ba2fcc422d + name: prompt-completion-ft + creator_id: 7a317d97-4d05-427d-9396-f31b9fb92c55 + organization_id: 6bdca3d5-3eae-4de0-ac34-786d8063b7ee + settings: + base_model: + name: medium + version: 14.2.0 + base_type: BASE_TYPE_GENERATIVE + strategy: STRATEGY_TFEW + dataset_id: my-dataset-d701tr + hyperparameters: + early_stopping_patience: 6 + early_stopping_threshold: 0.01 + train_batch_size: 16 + train_epochs: 1 + learning_rate: 0.01 + status: STATUS_READY + created_at: 2024-01-17T20:11:42.907112Z + updated_at: 2024-01-17T20:31:06.464015Z + completed_at: 2024-01-17T20:31:05.047066Z + "400": + description: Bad Request + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + "401": + description: Unauthorized + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + "403": + description: Forbidden + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + "404": + description: Not Found + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + "500": + description: Internal Server Error + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + "503": + description: Status Service Unavailable + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + parameters: + - name: id + description: The fine-tuned model ID. + in: path + required: true + schema: + type: string + - $ref: "#/components/parameters/RequestSource" + tags: + - /finetuning + x-readme: + samples-languages: + - python + - java + - go + - node + - curl + code-samples: + - language: java + name: Cohere java SDK + install: implementation 'com.cohere:cohere-java' + code: >+ + package finetuning; + + + import com.cohere.api.Cohere; + + import + com.cohere.api.resources.finetuning.finetuning.types.GetFinetunedModelResponse; + + + public class GetFinetunedModel { + public static void main(String[] args) { + Cohere cohere = Cohere.builder().token("<>").clientName("snippet").build(); + + GetFinetunedModelResponse response = cohere.finetuning().getFinetunedModel("test-id"); + + System.out.println(response); + } + } + + - language: go + name: Cohere Go SDK + install: go get github.com/cohere-ai/cohere-go/v2 + code: > + package main + + + import ( + "context" + "log" + + "github.com/cohere-ai/cohere-go/v2/client" + ) + + + func main() { + co := client.NewClient(client.WithToken("<>")) + + resp, err := co.Finetuning.GetFinetunedModel(context.TODO(), "test-id") + if err != nil { + log.Fatal(err) + } + + log.Printf("%+v", resp.FinetunedModel) + } + - language: node + name: Cohere TypeScript SDK + install: npm i cohere-ai + code: > + const { CohereClient } = require('cohere-ai'); + + + const cohere = new CohereClient({ + token: '<>', + }); + + + (async () => { + const finetunedModel = await cohere.finetuning.getFinetunedModel('test-id'); + + console.log(finetunedModel); + })(); + - language: python + name: Sync + install: python -m pip install cohere --upgrade + code: | + import cohere + + co = cohere.Client("<>") + response = co.finetuning.get_finetuned_model("test-id") + print(response) + - language: python + name: Async + install: python -m pip install cohere --upgrade + code: | + import cohere + import asyncio + + co = cohere.AsyncClient("<>") + + + async def main(): + response = await co.finetuning.get_finetuned_model("test-id") + print(response) + + asyncio.run(main()) + - language: curl + name: cURL + code: > + curl --request GET \ + --url https://api.cohere.com/v1/finetuning/finetuned-models/test-id \ + --header 'accept: application/json' \ + --header "Authorization: bearer $CO_API_KEY" + x-fern-sdk-group-name: finetuning + x-fern-audiences: + - public + x-fern-request-name: FinetuningGetFinetunedModelRequest + delete: + summary: Deletes a fine-tuned model. + operationId: DeleteFinetunedModel + responses: + "200": + description: A successful response. + content: + application/json: + schema: + $ref: "#/components/schemas/DeleteFinetunedModelResponse" + "400": + description: Bad Request + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + "401": + description: Unauthorized + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + "403": + description: Forbidden + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + "404": + description: Not Found + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + "500": + description: Internal Server Error + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + "503": + description: Status Service Unavailable + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + parameters: + - name: id + description: The fine-tuned model ID. + in: path + required: true + schema: + type: string + - $ref: "#/components/parameters/RequestSource" + tags: + - /finetuning + x-readme: + samples-languages: + - python + - java + - go + - node + - curl + code-samples: + - language: java + name: Cohere java SDK + install: implementation 'com.cohere:cohere-java' + code: > + package finetuning; + + + import com.cohere.api.Cohere; + + + + public class DeleteFinetunedModel { + public static void main(String[] args) { + Cohere cohere = Cohere.builder().token("<>").clientName("snippet").build(); + + cohere.finetuning().deleteFinetunedModel("test-id"); + } + } + - language: go + name: Cohere Go SDK + install: go get github.com/cohere-ai/cohere-go/v2 + code: > + package main + + + import ( + "context" + "log" + + "github.com/cohere-ai/cohere-go/v2/client" + ) + + + func main() { + co := client.NewClient(client.WithToken("<>")) + + _, err := co.Finetuning.DeleteFinetunedModel(context.TODO(), "test-id") + if err != nil { + log.Fatal(err) + } + } + - language: node + name: Cohere TypeScript SDK + install: npm i cohere-ai + code: | + const { CohereClient } = require('cohere-ai'); + + const cohere = new CohereClient({ + token: '<>', + }); + + (async () => { + await cohere.finetuning.deleteFinetunedModel('test-id'); + })(); + - language: python + name: Sync + install: python -m pip install cohere --upgrade + code: | + import cohere + + co = cohere.Client("<>") + co.finetuning.delete_finetuned_model("test-id") + - language: python + name: Async + install: python -m pip install cohere --upgrade + code: | + import cohere + import asyncio + + co = cohere.AsyncClient("<>") + + + async def main(): + await co.finetuning.delete_finetuned_model("test-id") + + asyncio.run(main()) + - language: curl + name: cURL + code: > + curl --request DELETE \ + --url https://api.cohere.com/v1/finetuning/finetuned-models/test-id \ + --header 'accept: application/json' \ + --header "Authorization: bearer $CO_API_KEY" + x-fern-sdk-group-name: finetuning + x-fern-audiences: + - public + "/finetuning/finetuned-models/{finetuned_model_id}/events": + get: + summary: Retrieves the chronology of statuses the fine-tuned model has been + through. + operationId: ListEvents + responses: + "200": + description: A successful response. + content: + application/json: + schema: + $ref: "#/components/schemas/ListEventsResponse" + example: + events: + - user_id: 7a317d97-4d05-427d-9396-f31b9fb92c55 + status: STATUS_QUEUED + created_at: 2024-01-17T20:11:45.267960Z + - user_id: 7a317d97-4d05-427d-9396-f31b9fb92c55 + status: STATUS_FINETUNING + created_at: 2024-01-17T20:11:46.000862Z + - user_id: 7a317d97-4d05-427d-9396-f31b9fb92c55 + status: STATUS_DEPLOYING_API + created_at: 2024-01-17T20:31:05.047066Z + - status: STATUS_READY + created_at: 2024-01-17T20:31:06.988655Z + total_size: 5 + "400": + description: Bad Request + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + "401": + description: Unauthorized + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + "403": + description: Forbidden + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + "404": + description: Not Found + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + "500": + description: Internal Server Error + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + "503": + description: Status Service Unavailable + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + parameters: + - name: finetuned_model_id + description: The parent fine-tuned model ID. + in: path + required: true + schema: + type: string + - name: page_size + description: |- + Maximum number of results to be returned by the server. If 0, defaults to + 50. + in: query + required: false + schema: + type: integer + format: int32 + - name: page_token + description: Request a specific page of the list results. + in: query + required: false + schema: + type: string + - name: order_by + description: |- + Comma separated list of fields. For example: "created_at,name". The default + sorting order is ascending. To specify descending order for a field, append + " desc" to the field name. For example: "created_at desc,name". + + Supported sorting fields: + - created_at (default) + in: query + required: false + schema: + type: string + - $ref: "#/components/parameters/RequestSource" + tags: + - /finetuning + x-readme: + samples-languages: + - python + - java + - go + - node + - curl + code-samples: + - language: java + name: Cohere java SDK + install: implementation 'com.cohere:cohere-java' + code: > + package finetuning; + + + import com.cohere.api.Cohere; + + import + com.cohere.api.resources.finetuning.finetuning.types.ListEventsResponse; + + + public class ListEvents { + public static void main(String[] args) { + Cohere cohere = Cohere.builder().token("<>").clientName("snippet").build(); + + ListEventsResponse response = cohere.finetuning().listEvents("test-id"); + + System.out.println(response); + } + } + - language: go + name: Cohere Go SDK + install: go get github.com/cohere-ai/cohere-go/v2 + code: | + package main + + import ( + "context" + "log" + + "github.com/cohere-ai/cohere-go/v2/client" + ) + + func main() { + co := client.NewClient(client.WithToken("<>")) + + resp, err := co.Finetuning.ListEvents( + context.TODO(), + "test-finetuned-model-id", + nil, + ) + if err != nil { + log.Fatal(err) + } + + log.Printf("%+v", resp.Events) + } + - language: node + name: Cohere TypeScript SDK + install: npm i cohere-ai + code: > + const { CohereClient } = require('cohere-ai'); + + + const cohere = new CohereClient({ + token: '<>', + }); + + + (async () => { + const events = await cohere.finetuning.listEvents('test-finetuned-model-id'); + + console.log(events); + })(); + - language: python + name: Sync + install: python -m pip install cohere --upgrade + code: | + import cohere + + co = cohere.Client("<>") + response = co.finetuning.list_events(finetuned_model_id="test-id") + print(response) + - language: python + name: Async + install: python -m pip install cohere --upgrade + code: > + import cohere + + import asyncio + + + co = cohere.AsyncClient("<>") + + + + async def main(): + response = await co.finetuning.list_events(finetuned_model_id="test-id") + print(response) + + asyncio.run(main()) + - language: curl + name: cURL + code: > + curl --request GET \ + --url https://api.cohere.com/v1/finetuning/finetuned-models/test-id/events \ + --header 'accept: application/json' \ + --header "Authorization: bearer $CO_API_KEY" + x-fern-sdk-group-name: finetuning + x-fern-audiences: + - public + x-fern-request-name: FinetuningListEventsRequest + "/finetuning/finetuned-models/{finetuned_model_id}/training-step-metrics": + get: + summary: Retrieves metrics measured during the training of a fine-tuned model. + operationId: ListTrainingStepMetrics + responses: + "200": + description: A successful response. + content: + application/json: + schema: + $ref: "#/components/schemas/ListTrainingStepMetricsResponse" + example: + step_metrics: + - created_at: 2024-01-17T20:24:26.952802658Z + metrics: + accuracy: 0.4557601809501648 + cross_entropy: 4.264331340789795 + generation_accuracy: 0.4557601809501648 + generation_cross_entropy: 4.264331340789795 + step: 0 + - created_at: 2024-01-17T20:25:19.331940174Z + step_number: 9 + metrics: + accuracy: 0.7393720149993896 + cross_entropy: 0.7702581286430359 + generation_accuracy: 0.7393720149993896 + generation_cross_entropy: 0.7702581286430359 + step: 9 + "400": + description: Bad Request + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + "401": + description: Unauthorized + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + "403": + description: Forbidden + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + "404": + description: Not Found + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + "500": + description: Internal Server Error + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + "503": + description: Status Service Unavailable + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + parameters: + - name: finetuned_model_id + description: The parent fine-tuned model ID. + in: path + required: true + schema: + type: string + - name: page_size + description: |- + Maximum number of results to be returned by the server. If 0, defaults to + 50. + in: query + required: false + schema: + type: integer + format: int32 + - name: page_token + description: Request a specific page of the list results. + in: query + required: false + schema: + type: string + - $ref: "#/components/parameters/RequestSource" + tags: + - /finetuning + x-readme: + samples-languages: + - python + - java + - go + - node + - curl + code-samples: + - language: java + name: Cohere java SDK + install: implementation 'com.cohere:cohere-java' + code: > + package finetuning; + + + import com.cohere.api.Cohere; + + import + com.cohere.api.resources.finetuning.finetuning.types.ListTrainingStepMetricsResponse; + + + + public class ListTrainingStepMetrics { + public static void main(String[] args) { + Cohere cohere = Cohere.builder().token("<>").clientName("snippet").build(); + + ListTrainingStepMetricsResponse response = cohere.finetuning().listTrainingStepMetrics("test-id"); + + System.out.println(response); + } + } + - language: go + name: Cohere Go SDK + install: go get github.com/cohere-ai/cohere-go/v2 + code: | + package main + + import ( + "context" + "log" + + "github.com/cohere-ai/cohere-go/v2/client" + ) + + func main() { + co := client.NewClient(client.WithToken("<>")) + + resp, err := co.Finetuning.ListTrainingStepMetrics( + context.TODO(), + "test-finetuned-model-id", + nil, + ) + if err != nil { + log.Fatal(err) + } + + log.Printf("%+v", resp.StepMetrics) + } + - language: node + name: Cohere TypeScript SDK + install: npm i cohere-ai + code: > + const { CohereClient } = require('cohere-ai'); + + + const cohere = new CohereClient({ + token: '<>', + }); + + + (async () => { + const trainingStepMetrics = await cohere.finetuning.listTrainingStepMetrics( + 'test-finetuned-model-id' + ); + + console.log(trainingStepMetrics); + })(); + - language: python + name: Sync + install: python -m pip install cohere --upgrade + code: | + import cohere + + co = cohere.Client("<>") + train_step_metrics = co.finetuning.list_training_step_metrics( + finetuned_model_id="test-id") + print(train_step_metrics) + - language: python + name: Async + install: python -m pip install cohere --upgrade + code: > + import cohere + + import asyncio + + + co = cohere.AsyncClient("<>") + + + + async def main(): + response = await co.finetuning.list_train_step_metrics(finetuned_model_id="test-id") + print(response) + + asyncio.run(main()) + - language: curl + name: cURL + code: > + curl --request GET \ + --url https://api.cohere.com/v1/finetuning/finetuned-models/test-id/training-step-metrics \ + --header 'accept: application/json' \ + --header "Authorization: bearer $CO_API_KEY" + x-fern-sdk-group-name: finetuning + x-fern-audiences: + - public + x-fern-request-name: FinetuningListTrainingStepMetricsRequest +components: + securitySchemes: + bearerAuth: + type: http + x-fern-audiences: + - public + scheme: bearer + x-fern-bearer: + env: CO_API_KEY + parameters: + RequestSource: + name: X-Client-Name + description: | + The name of the project that is making the request. + x-fern-audiences: + - public + schema: + type: string + in: header + required: false + example: my-cool-project + schemas: + ChatRole: + type: string + description: | + One of `CHATBOT`, `SYSTEM`, `TOOL` or `USER` to identify who the message is coming from. + enum: + - CHATBOT + - SYSTEM + - USER + - TOOL + ToolCall: + description: | + Contains the tool calls generated by the model. Use it to invoke your tools. + type: object + required: + - name + - parameters + properties: + name: + x-fern-audiences: + - public + description: Name of the tool to call. + type: string + parameters: + x-fern-audiences: + - public + description: The name and value of the parameters to use when invoking a tool. + type: object + additionalProperties: true + ChatMessage: + description: | + Represents a single message in the chat history, excluding the current user turn. It has two properties: `role` and `message`. The `role` identifies the sender (`CHATBOT`, `SYSTEM`, or `USER`), while the `message` contains the text content. + + The chat_history parameter should not be used for `SYSTEM` messages in most cases. Instead, to add a `SYSTEM` role message at the beginning of a conversation, the `preamble` parameter should be used. + required: + - role + - message + properties: + role: + $ref: "#/components/schemas/ChatRole" + x-fern-audiences: + - public + message: + type: string + description: | + Contents of the chat message. + minLength: 1 + x-fern-audiences: + - public + tool_calls: + x-fern-audiences: + - public + type: array + items: + $ref: "#/components/schemas/ToolCall" + ToolResult: + type: object + required: + - call + - outputs + properties: + call: + $ref: "#/components/schemas/ToolCall" + outputs: + type: array + minItems: 0 + items: + type: object + additionalProperties: true + ToolMessage: + description: | + Represents tool result in the chat history. + required: + - role + properties: + role: + $ref: "#/components/schemas/ChatRole" + tool_results: + type: array + items: + $ref: "#/components/schemas/ToolResult" + Message: + oneOf: + - $ref: "#/components/schemas/ChatMessage" + - $ref: "#/components/schemas/ToolMessage" + discriminator: + propertyName: role + mapping: + CHATBOT: "#/components/schemas/ChatMessage" + SYSTEM: "#/components/schemas/ChatMessage" + USER: "#/components/schemas/ChatMessage" + TOOL: "#/components/schemas/ToolMessage" + ChatConnector: + description: | + The connector used for fetching documents. + type: object + required: + - id + properties: + id: + description: | + The identifier of the connector. + type: string + x-fern-audiences: + - public + minLength: 1 + user_access_token: + description: | + When specified, this user access token will be passed to the connector in the Authorization header instead of the Cohere generated one. + type: string + x-fern-audiences: + - public + continue_on_failure: + description: | + Defaults to `false`. + + When `true`, the request will continue if this connector returned an error. + type: boolean + x-fern-audiences: + - public + options: + description: | + Provides the connector with different settings at request time. The key/value pairs of this object are specific to each connector. + + For example, the connector `web-search` supports the `site` option, which limits search results to the specified domain. + type: object + x-fern-audiences: + - public + ChatDocument: + description: | + Relevant information that could be used by the model to generate a more accurate reply. + The contents of each document are generally short (under 300 words), and are passed in the form of a + dictionary of strings. Some suggested keys are "text", "author", "date". Both the key name and the value will be + passed to the model. + type: object + properties: + id: + description: Unique identifier for this document. + type: string + x-fern-audiences: + - public + additionalProperties: + type: string + x-fern-audiences: + - public + x-fern-type: map + Tool: + type: object + required: + - name + - description + properties: + name: + type: string + description: | + The name of the tool to be called. Valid names contain only the characters `a-z`, `A-Z`, `0-9`, `_` and must not begin with a digit. + description: + description: | + The description of what the tool does, the model uses the description to choose when and how to call the function. + type: string + parameter_definitions: + description: | + The input parameters of the tool. Accepts a dictionary where the key is the name of the parameter and the value is the parameter spec. Valid parameter names contain only the characters `a-z`, `A-Z`, `0-9`, `_` and must not begin with a digit. + ``` + { + "my_param": { + "description": , + "type": , // any python data type, such as 'str', 'bool' + "required": + } + } + ``` + type: object + additionalProperties: + type: object + required: + - type + properties: + description: + description: | + The description of the parameter. + type: string + type: + description: | + The type of the parameter. Must be a valid Python type. + type: string + required: + description: | + Denotes whether the parameter is always present (required) or not. Defaults to not required. + type: boolean + default: false + ResponseFormatType: + x-fern-audiences: + - public + description: | + Defaults to `"text"`. + + When set to `"json_object"`, the model's output will be a valid JSON Object. + type: string + enum: + - text + - json_object + TextResponseFormat: + x-fern-audiences: + - public + type: object + properties: + type: + $ref: "#/components/schemas/ResponseFormatType" + required: + - type + JSONResponseFormat: + x-fern-audiences: + - public + type: object + properties: + type: + $ref: "#/components/schemas/ResponseFormatType" + schema: + description: | + [BETA] A JSON schema object that the output will adhere to. There are some restrictions we have on the schema, refer to [our guide](/docs/structured-outputs-json#schema-constraints) for more information. + Example (required name and age object): + ```json + { + "type": "object", + "properties": { + "name": {"type": "string"}, + "age": {"type": "integer"} + }, + "required": ["name", "age"] + } + ``` + + **Note**: This field must not be specified when the `type` is set to `"text"`. + type: object + required: + - type + ResponseFormat: + description: | + Configuration for forcing the model output to adhere to the specified format. Supported on [Command R](https://docs.cohere.com/docs/command-r), [Command R+](https://docs.cohere.com/docs/command-r-plus) and newer models. + + The model can be forced into outputting JSON objects (with up to 5 levels of nesting) by setting `{ "type": "json_object" }`. + + A [JSON Schema](https://json-schema.org/) can optionally be provided, to ensure a specific structure. + + **Note**: When using `{ "type": "json_object" }` your `message` should always explicitly instruct the model to generate a JSON (eg: _"Generate a JSON ..."_) . Otherwise the model may end up getting stuck generating an infinite stream of characters and eventually run out of context length. + **Limitation**: The parameter is not supported in RAG mode (when any of `connectors`, `documents`, `tools`, `tool_results` are provided). + oneOf: + - $ref: "#/components/schemas/TextResponseFormat" + - $ref: "#/components/schemas/JSONResponseFormat" + discriminator: + propertyName: type + mapping: + text: "#/components/schemas/TextResponseFormat" + json_object: "#/components/schemas/JSONResponseFormat" + ChatCitation: + description: | + A section of the generated reply which cites external knowledge. + required: + - start + - end + - text + - document_ids + properties: + start: + description: | + The index of text that the citation starts at, counting from zero. For example, a generation of `Hello, world!` with a citation on `world` would have a start value of `7`. This is because the citation starts at `w`, which is the seventh character. + type: integer + x-fern-audiences: + - public + end: + description: | + The index of text that the citation ends after, counting from zero. For example, a generation of `Hello, world!` with a citation on `world` would have an end value of `11`. This is because the citation ends after `d`, which is the eleventh character. + type: integer + x-fern-audiences: + - public + text: + description: | + The text of the citation. For example, a generation of `Hello, world!` with a citation of `world` would have a text value of `world`. + type: string + x-fern-audiences: + - public + minLength: 1 + document_ids: + description: | + Identifiers of documents cited by this section of the generated reply. + type: array + x-fern-audiences: + - public + items: + type: string + x-fern-audiences: + - public + minItems: 1 + ChatSearchQuery: + description: | + The generated search query. Contains the text of the query and a unique identifier for the query. + type: object + required: + - text + - generation_id + properties: + text: + description: | + The text of the search query. + type: string + x-fern-audiences: + - public + generation_id: + description: | + Unique identifier for the generated search query. Useful for submitting feedback. + type: string + x-fern-audiences: + - public + format: uuid + ChatSearchResultConnector: + description: | + The connector used for fetching documents. + type: object + required: + - id + properties: + id: + description: | + The identifier of the connector. + type: string + x-fern-audiences: + - public + minLength: 1 + ChatSearchResult: + type: object + required: + - connector + - document_ids + properties: + search_query: + $ref: "#/components/schemas/ChatSearchQuery" + x-fern-audiences: + - public + connector: + description: | + The connector from which this result comes from. + $ref: "#/components/schemas/ChatSearchResultConnector" + x-fern-audiences: + - public + document_ids: + description: | + Identifiers of documents found by this search query. + type: array + x-fern-audiences: + - public + minLength: 0 + items: + type: string + x-fern-audiences: + - public + minLength: 1 + error_message: + description: | + An error message if the search failed. + type: string + x-fern-audiences: + - public + continue_on_failure: + description: | + Whether a chat request should continue or not if the request to this connector fails. + type: boolean + x-fern-audiences: + - public + FinishReason: + type: string + enum: + - COMPLETE + - STOP_SEQUENCE + - ERROR + - ERROR_TOXIC + - ERROR_LIMIT + - USER_CANCEL + - MAX_TOKENS + ApiMeta: + type: object + properties: + api_version: + type: object + x-fern-audiences: + - public + properties: + version: + type: string + x-fern-audiences: + - public + is_deprecated: + type: boolean + x-fern-audiences: + - public + is_experimental: + type: boolean + x-fern-audiences: + - public + required: + - version + billed_units: + type: object + x-fern-audiences: + - public + properties: + input_tokens: + type: number + x-fern-audiences: + - public + description: | + The number of billed input tokens. + output_tokens: + type: number + x-fern-audiences: + - public + description: | + The number of billed output tokens. + search_units: + type: number + x-fern-audiences: + - public + description: | + The number of billed search units. + classifications: + type: number + x-fern-audiences: + - public + description: | + The number of billed classifications units. + tokens: + type: object + x-fern-audiences: + - public + properties: + input_tokens: + type: number + x-fern-audiences: + - public + description: | + The number of tokens used as input to the model. + output_tokens: + type: number + x-fern-audiences: + - public + description: | + The number of tokens produced by the model. + warnings: + type: array + x-fern-audiences: + - public + items: + type: string + x-fern-audiences: + - public + NonStreamedChatResponse: + required: + - text + x-fern-type-name: NonStreamedChatResponse + properties: + text: + type: string + x-fern-audiences: + - public + minLength: 1 + description: Contents of the reply generated by the model. + generation_id: + type: string + x-fern-audiences: + - public + format: uuid + description: Unique identifier for the generated reply. Useful for submitting + feedback. + citations: + type: array + x-fern-audiences: + - public + minItems: 0 + description: Inline citations for the generated reply. + items: + $ref: "#/components/schemas/ChatCitation" + documents: + type: array + x-fern-audiences: + - public + minItems: 0 + description: Documents seen by the model when generating the reply. + items: + $ref: "#/components/schemas/ChatDocument" + is_search_required: + type: boolean + x-fern-audiences: + - public + description: Denotes that a search for documents is required during the RAG flow. + search_queries: + type: array + x-fern-audiences: + - public + description: Generated search queries, meant to be used as part of the RAG flow. + items: + $ref: "#/components/schemas/ChatSearchQuery" + search_results: + type: array + x-fern-audiences: + - public + minItems: 0 + description: Documents retrieved from each of the conducted searches. + items: + $ref: "#/components/schemas/ChatSearchResult" + finish_reason: + x-fern-audiences: + - public + $ref: "#/components/schemas/FinishReason" + tool_calls: + x-fern-audiences: + - public + type: array + items: + $ref: "#/components/schemas/ToolCall" + chat_history: + type: array + x-fern-audiences: + - public + minItems: 0 + items: + $ref: "#/components/schemas/Message" + description: | + A list of previous messages between the user and the model, meant to give the model conversational context for responding to the user's `message`. + meta: + $ref: "#/components/schemas/ApiMeta" + x-fern-audiences: + - public + ChatStreamEvent: + required: + - event_type + properties: + event_type: + type: string + x-fern-audiences: + - public + enum: + - stream-start + - search-queries-generation + - search-results + - text-generation + - citation-generation + - stream-end + ChatStreamStartEvent: + allOf: + - $ref: "#/components/schemas/ChatStreamEvent" + - type: object + required: + - generation_id + properties: + generation_id: + description: | + Unique identifier for the generated reply. Useful for submitting feedback. + type: string + x-fern-audiences: + - public + format: uuid + minLength: 1 + ChatSearchQueriesGenerationEvent: + allOf: + - $ref: "#/components/schemas/ChatStreamEvent" + - type: object + required: + - search_queries + properties: + search_queries: + type: array + x-fern-audiences: + - public + description: Generated search queries, meant to be used as part of the RAG flow. + items: + $ref: "#/components/schemas/ChatSearchQuery" + ChatSearchResultsEvent: + allOf: + - $ref: "#/components/schemas/ChatStreamEvent" + - type: object + properties: + search_results: + description: | + Conducted searches and the ids of documents retrieved from each of them. + type: array + x-fern-audiences: + - public + minItems: 0 + items: + $ref: "#/components/schemas/ChatSearchResult" + documents: + description: | + Documents fetched from searches or provided by the user. + type: array + x-fern-audiences: + - public + minItems: 0 + items: + $ref: "#/components/schemas/ChatDocument" + ChatTextGenerationEvent: + allOf: + - $ref: "#/components/schemas/ChatStreamEvent" + - type: object + required: + - text + properties: + text: + description: | + The next batch of text generated by the model. + type: string + x-fern-audiences: + - public + minLength: 1 + ChatCitationGenerationEvent: + allOf: + - $ref: "#/components/schemas/ChatStreamEvent" + - type: object + required: + - citations + properties: + citations: + description: | + Citations for the generated reply. + type: array + x-fern-audiences: + - public + items: + $ref: "#/components/schemas/ChatCitation" + ChatToolCallsGenerationEvent: + allOf: + - $ref: "#/components/schemas/ChatStreamEvent" + - type: object + required: + - tool_calls + properties: + text: + description: | + The text generated related to the tool calls generated + type: string + x-fern-audiences: + - public + tool_calls: + x-fern-audiences: + - public + type: array + items: + $ref: "#/components/schemas/ToolCall" + ChatStreamEndEvent: + allOf: + - $ref: "#/components/schemas/ChatStreamEvent" + - type: object + required: + - finish_reason + - response + properties: + finish_reason: + description: | + - `COMPLETE` - the model sent back a finished reply + - `ERROR_LIMIT` - the reply was cut off because the model reached the maximum number of tokens for its context length + - `MAX_TOKENS` - the reply was cut off because the model reached the maximum number of tokens specified by the max_tokens parameter + - `ERROR` - something went wrong when generating the reply + - `ERROR_TOXIC` - the model generated a reply that was deemed toxic + type: string + x-fern-audiences: + - public + enum: + - COMPLETE + - ERROR_LIMIT + - MAX_TOKENS + - ERROR + - ERROR_TOXIC + response: + x-fern-audiences: + - public + description: | + The consolidated response from the model. Contains the generated reply and all the other information streamed back in the previous events. + $ref: "#/components/schemas/NonStreamedChatResponse" + ToolCallDelta: + description: | + Contains the chunk of the tool call generation in the stream. + type: object + properties: + name: + description: | + Name of the tool call + type: string + x-fern-audiences: + - public + index: + description: | + Index of the tool call generated + type: number + x-fern-audiences: + - public + parameters: + description: | + Chunk of the tool parameters + type: string + x-fern-audiences: + - public + text: + description: | + Chunk of the tool plan text + type: string + x-fern-audiences: + - public + ChatToolCallsChunkEvent: + allOf: + - $ref: "#/components/schemas/ChatStreamEvent" + - type: object + required: + - tool_call_delta + properties: + tool_call_delta: + $ref: "#/components/schemas/ToolCallDelta" + x-fern-audiences: + - public + StreamedChatResponse: + description: StreamedChatResponse is returned in streaming mode (specified with + `stream=True` in the request). + x-fern-type-name: StreamedChatResponse + oneOf: + - $ref: "#/components/schemas/ChatStreamStartEvent" + - $ref: "#/components/schemas/ChatSearchQueriesGenerationEvent" + - $ref: "#/components/schemas/ChatSearchResultsEvent" + - $ref: "#/components/schemas/ChatTextGenerationEvent" + - $ref: "#/components/schemas/ChatCitationGenerationEvent" + - $ref: "#/components/schemas/ChatToolCallsGenerationEvent" + - $ref: "#/components/schemas/ChatStreamEndEvent" + - $ref: "#/components/schemas/ChatToolCallsChunkEvent" + discriminator: + propertyName: event_type + mapping: + stream-start: "#/components/schemas/ChatStreamStartEvent" + search-queries-generation: "#/components/schemas/ChatSearchQueriesGenerationEvent" + search-results: "#/components/schemas/ChatSearchResultsEvent" + text-generation: "#/components/schemas/ChatTextGenerationEvent" + citation-generation: "#/components/schemas/ChatCitationGenerationEvent" + tool-calls-generation: "#/components/schemas/ChatToolCallsGenerationEvent" + stream-end: "#/components/schemas/ChatStreamEndEvent" + tool-calls-chunk: "#/components/schemas/ChatToolCallsChunkEvent" + SingleGeneration: + type: object + properties: + id: + type: string + x-fern-audiences: + - public + text: + type: string + x-fern-audiences: + - public + index: + type: integer + x-fern-audiences: + - public + description: Refers to the nth generation. Only present when `num_generations` + is greater than zero. + likelihood: + type: number + x-fern-audiences: + - public + token_likelihoods: + type: array + x-fern-audiences: + - public + description: Only returned if `return_likelihoods` is set to `GENERATION` or + `ALL`. The likelihood refers to the average log-likelihood of the + entire specified string, which is useful for [evaluating the + performance of your model](likelihood-eval), especially if you've + created a [custom model](/docs/training-custom-models). Individual + token likelihoods provide the log-likelihood of each token. The + first token will not have a likelihood. + items: + type: object + x-fern-audiences: + - public + properties: + token: + type: string + x-fern-audiences: + - public + likelihood: + type: number + x-fern-audiences: + - public + required: + - id + - token + - likelihood + required: + - text + - id + Generation: + type: object + x-fern-type-name: Generation + required: + - id + - generations + properties: + id: + type: string + x-fern-audiences: + - public + prompt: + type: string + x-fern-audiences: + - public + description: Prompt used for generations. + generations: + type: array + x-fern-audiences: + - public + description: List of generated results + items: + type: object + x-fern-audiences: + - public + $ref: "#/components/schemas/SingleGeneration" + meta: + $ref: "#/components/schemas/ApiMeta" + x-fern-audiences: + - public + GenerateStreamEvent: + required: + - event_type + properties: + event_type: + type: string + enum: + - text-generation + - stream-end + - stream-error + GenerateStreamText: + allOf: + - $ref: "#/components/schemas/GenerateStreamEvent" + - type: object + required: + - is_finished + - text + properties: + text: + type: string + description: A segment of text of the generation. + index: + type: integer + description: Refers to the nth generation. Only present when `num_generations` + is greater than zero, and only when text responses are being + streamed. + is_finished: + type: boolean + SingleGenerationInStream: + type: object + properties: + id: + type: string + x-fern-audiences: + - public + text: + type: string + x-fern-audiences: + - public + description: Full text of the generation. + index: + type: integer + x-fern-audiences: + - public + description: Refers to the nth generation. Only present when `num_generations` + is greater than zero. + finish_reason: + x-fern-audiences: + - public + $ref: "#/components/schemas/FinishReason" + required: + - text + - id + - finish_reason + GenerateStreamEnd: + allOf: + - $ref: "#/components/schemas/GenerateStreamEvent" + - type: object + required: + - is_finished + - finish_response + - response + properties: + is_finished: + x-fern-audiences: + - public + type: boolean + finish_reason: + x-fern-audiences: + - public + $ref: "#/components/schemas/FinishReason" + response: + type: object + x-fern-audiences: + - public + required: + - id + properties: + id: + x-fern-audiences: + - public + type: string + prompt: + x-fern-audiences: + - public + type: string + generations: + x-fern-audiences: + - public + type: array + items: + $ref: "#/components/schemas/SingleGenerationInStream" + GenerateStreamError: + allOf: + - $ref: "#/components/schemas/GenerateStreamEvent" + - type: object + required: + - is_finished + - finish_reason + - err + properties: + index: + x-fern-audiences: + - public + type: integer + description: Refers to the nth generation. Only present when `num_generations` + is greater than zero. + is_finished: + x-fern-audiences: + - public + type: boolean + finish_reason: + x-fern-audiences: + - public + $ref: "#/components/schemas/FinishReason" + err: + x-fern-audiences: + - public + type: string + description: Error message + GenerateStreamedResponse: + description: Response in content type stream when `stream` is `true` in the + request parameters. Generation tokens are streamed with the + GenerationStream response. The final response is of type + GenerationFinalResponse. + x-fern-type-name: GenerateStreamedResponse + oneOf: + - $ref: "#/components/schemas/GenerateStreamText" + - $ref: "#/components/schemas/GenerateStreamEnd" + - $ref: "#/components/schemas/GenerateStreamError" + discriminator: + propertyName: event_type + mapping: + text-generation: "#/components/schemas/GenerateStreamText" + stream-end: "#/components/schemas/GenerateStreamEnd" + stream-error: "#/components/schemas/GenerateStreamError" + EmbedInputType: + type: string + enum: + - search_document + - search_query + - classification + - clustering + description: | + Specifies the type of input passed to the model. Required for embedding models v3 and higher. + + - `"search_document"`: Used for embeddings stored in a vector database for search use-cases. + - `"search_query"`: Used for embeddings of search queries run against a vector DB to find relevant documents. + - `"classification"`: Used for embeddings passed through a text classifier. + - `"clustering"`: Used for the embeddings run through a clustering algorithm. + EmbeddingType: + x-fern-audiences: + - public + type: string + writeOnly: true + enum: + - float + - int8 + - uint8 + - binary + - ubinary + EmbedFloatsResponse: + type: object + required: + - id + - embeddings + - texts + - api_version + properties: + response_type: + type: string + x-fern-audiences: + - public + enum: + - embeddings_floats + - embeddings_by_type + id: + type: string + x-fern-audiences: + - public + embeddings: + type: array + x-fern-audiences: + - public + description: An array of embeddings, where each embedding is an array of floats. + The length of the `embeddings` array will be the same as the length + of the original `texts` array. + items: + type: array + x-fern-audiences: + - public + items: + type: number + x-fern-audiences: + - public + readOnly: true + readOnly: true + texts: + type: array + x-fern-audiences: + - public + description: The text entries for which embeddings were returned. + items: + type: string + x-fern-audiences: + - public + meta: + $ref: "#/components/schemas/ApiMeta" + x-fern-audiences: + - public + x-examples: + Example: + value: + id: bc57846a-3e56-4327-8acc-588ca1a37b8a + texts: + - hello world + embeddings: + - - -0.039520264 + - -0.04574585 + - -0.08807373 + - -0.084106445 + - -0.009742737 + - -0.0090408325 + - -0.048187256 + - 0.07128906 + - 0.010688782 + - 0.016067505 + - -0.02822876 + - 0.036224365 + - 0.037994385 + - -0.041992188 + - 0.052124023 + - -0.027297974 + - 0.048309326 + - 0.017410278 + - 0.004283905 + - -0.0058555603 + - -0.012992859 + - 0.023040771 + - 0.00121212 + - 0.02078247 + - 0.04827881 + - -0.021530151 + - 0.017807007 + - 0.0075531006 + - -0.047912598 + - -0.042633057 + - 0.0016927719 + - 0.04547119 + - 0.0143585205 + - 0.022354126 + - 0.0017910004 + - 0.048614502 + - -0.02609253 + - 0.007850647 + - 0.00907135 + - 0.0035381317 + - 0.015289307 + - -0.008132935 + - 0.016296387 + - -0.02859497 + - -0.023712158 + - 0.008857727 + - -0.04309082 + - -0.025115967 + - 0.032928467 + - -0.029663086 + - 0.00434494 + - -0.022338867 + - -0.004371643 + - -0.0075035095 + - -0.009529114 + - 0.0038223267 + - -0.06048584 + - -0.018127441 + - 0.010131836 + - 0.08380127 + - 0.03652954 + - 0.0030384064 + - 0.006034851 + - -0.006286621 + - 0.016784668 + - -0.00308609 + - 0.01612854 + - 0.011413574 + - 0.022491455 + - 0.02482605 + - 0.0047683716 + - 0.012245178 + - -0.017593384 + - -0.023254395 + - -0.012641907 + - 0.030181885 + - -0.015365601 + - 0.031021118 + - 0.015144348 + - 0.016708374 + - 0.02180481 + - 0.010765076 + - -0.015586853 + - -0.05819702 + - 0.02128601 + - -0.021713257 + - -0.013320923 + - -0.0064849854 + - -0.001657486 + - -0.030715942 + - -0.008666992 + - 0.060668945 + - -0.0011959076 + - -0.032104492 + - -0.057006836 + - -0.015655518 + - -0.014015198 + - 0.036987305 + - 0.011016846 + - 0.037475586 + - -0.015319824 + - -0.016479492 + - 0.0030403137 + - -0.028167725 + - -0.0067825317 + - -0.00894928 + - -0.026107788 + - 0.010231018 + - 0.031707764 + - 0.050354004 + - -0.016220093 + - 0.04345703 + - -0.008888245 + - -0.0037784576 + - -0.034576416 + - 0.002565384 + - -0.0018634796 + - 0.013954163 + - 0.012062073 + - 0.046813965 + - 0.033081055 + - 0.028778076 + - 0.0051231384 + - 0.022094727 + - -0.021881104 + - -0.009788513 + - -0.04647827 + - -0.025482178 + - 0.066833496 + - -0.040863037 + - -0.019714355 + - 0.06866455 + - -0.07519531 + - -0.045532227 + - -0.020507812 + - 0.021331787 + - 0.036376953 + - -0.034210205 + - 0.017669678 + - 0.0155181885 + - 0.047698975 + - -0.010368347 + - 0.010879517 + - 0.016555786 + - -0.028076172 + - 0.03225708 + - -0.0056152344 + - -0.020690918 + - 0.00011438131 + - -0.021011353 + - -0.04425049 + - -0.029922485 + - -0.0014362335 + - 0.013618469 + - 0.011260986 + - 0.017532349 + - -0.043426514 + - 0.012557983 + - 0.026748657 + - 0.039154053 + - -0.030944824 + - 0.024169922 + - 0.06573486 + - -0.03817749 + - -0.025314331 + - -0.039794922 + - -0.050445557 + - -0.0020828247 + - -0.0010194778 + - 0.01725769 + - 0.0017976761 + - 0.029067993 + - 0.0115356445 + - 0.005214691 + - 0.0066604614 + - -0.014801025 + - -0.033172607 + - 0.023956299 + - 0.008865356 + - 0.09539795 + - 0.062286377 + - -0.0076408386 + - -0.035125732 + - 0.09082031 + - -0.015350342 + - -0.015625 + - -0.0090789795 + - -0.01876831 + - 0.05239868 + - -0.010406494 + - 0.05078125 + - -0.013694763 + - -0.07244873 + - 0.018539429 + - -0.016983032 + - -0.03353882 + - 0.01739502 + - 0.004055023 + - -0.010147095 + - -0.0027599335 + - -0.002714157 + - -0.0107040405 + - 0.021438599 + - -0.029525757 + - 0.01902771 + - -0.025909424 + - 0.0008072853 + - 0.026672363 + - 0.0019044876 + - 0.016937256 + - -0.018814087 + - -0.03668213 + - 0.03338623 + - -0.09240723 + - -0.024765015 + - -0.019378662 + - -0.051757812 + - 0.050109863 + - 0.018859863 + - 0.01687622 + - 0.020111084 + - -0.041534424 + - 0.009559631 + - -0.018859863 + - 0.00005853176 + - 0.032684326 + - -0.04058838 + - 0.015823364 + - -0.038635254 + - 0.0055656433 + - -0.021560669 + - 0.012481689 + - -0.050872803 + - -0.036071777 + - -0.046844482 + - -0.041900635 + - -0.06561279 + - 0.014785767 + - 0.010124207 + - 0.030426025 + - 0.024261475 + - 0.0057411194 + - -0.026275635 + - -0.006919861 + - 0.022750854 + - -0.015167236 + - 0.022964478 + - -0.0033664703 + - 0.02734375 + - 0.03201294 + - 0.025939941 + - 0.019104004 + - 0.028030396 + - -0.014328003 + - -0.01574707 + - 0.06982422 + - -0.008026123 + - 0.006816864 + - -0.0019035339 + - 0.026245117 + - -0.028945923 + - 0.014968872 + - 0.0054244995 + - -0.00028896332 + - -0.02243042 + - -0.0030822754 + - -0.02558899 + - -0.022918701 + - -0.017089844 + - -0.0035190582 + - 0.029953003 + - -0.037078857 + - -0.02507019 + - -0.017303467 + - 0.064331055 + - -0.028533936 + - -0.07287598 + - 0.028839111 + - -0.0029792786 + - -0.02104187 + - -0.01663208 + - -0.016571045 + - -0.015106201 + - 0.0027313232 + - 0.031051636 + - -0.025680542 + - 0.004722595 + - 0.032348633 + - 0.020019531 + - 0.056365967 + - 0.07208252 + - 0.01235199 + - 0.00084495544 + - 0.035369873 + - -0.018569946 + - -0.0063552856 + - 0.03161621 + - 0.064575195 + - -0.02557373 + - -0.007232666 + - -0.017700195 + - -0.003835678 + - 0.007381439 + - -0.0385437 + - -0.0019102097 + - -0.023223877 + - -0.0124435425 + - 0.013343811 + - 0.020996094 + - -0.014022827 + - -0.01939392 + - 0.044128418 + - 0.0052757263 + - -0.00068950653 + - -0.04876709 + - -0.05609131 + - -0.020874023 + - -0.00806427 + - -0.13391113 + - -0.06323242 + - -0.021865845 + - -0.021072388 + - 0.005832672 + - -0.015701294 + - -0.006286621 + - -0.012954712 + - -0.017288208 + - 0.0036773682 + - -0.0084991455 + - -0.03213501 + - 0.021987915 + - -0.010322571 + - -0.029144287 + - 0.003824234 + - 0.02708435 + - 0.0026187897 + - 0.05496216 + - -0.04916382 + - 0.005466461 + - -0.0070648193 + - 0.0793457 + - -0.040863037 + - 0.012641907 + - 0.016448975 + - 0.02041626 + - -0.029006958 + - -0.008491516 + - 0.0023422241 + - 0.043640137 + - 0.0121536255 + - -0.0043525696 + - -0.030899048 + - 0.0062332153 + - -0.013038635 + - 0.007904053 + - -0.03390503 + - -0.034729004 + - -0.0647583 + - -0.0052375793 + - -0.08154297 + - 0.015960693 + - 0.016235352 + - -0.012130737 + - -0.021469116 + - -0.03253174 + - -0.014465332 + - 0.016448975 + - 0.004589081 + - -0.05291748 + - 0.018005371 + - -0.002981186 + - -0.01247406 + - 0.023147583 + - -0.055419922 + - -0.08526611 + - 0.016723633 + - 0.012939453 + - -0.039031982 + - 0.016677856 + - 0.016937256 + - 0.023147583 + - 0.034576416 + - -0.010635376 + - 0.03466797 + - 0.037750244 + - 0.020141602 + - -0.0046539307 + - 0.0059432983 + - 0.05609131 + - 0.027709961 + - 0.01838684 + - 0.015022278 + - -0.039215088 + - -0.0048828125 + - 0.047546387 + - 0.0138549805 + - -0.046203613 + - 0.036193848 + - -0.109680176 + - 0.0019550323 + - -0.03125 + - 0.0084991455 + - -0.0020256042 + - -0.001739502 + - -0.06756592 + - 0.03491211 + - -0.05633545 + - -0.008491516 + - 0.0048446655 + - 0.042663574 + - 0.025054932 + - -0.022247314 + - -0.0044555664 + - 0.0022335052 + - -0.0071907043 + - -0.003982544 + - -0.073913574 + - -0.011253357 + - 0.029220581 + - -0.0047073364 + - -0.04626465 + - 0.05670166 + - -0.041503906 + - 0.014579773 + - -0.016174316 + - 0.021560669 + - -0.019332886 + - 0.01550293 + - 0.02709961 + - 0.010528564 + - 0.012786865 + - -0.023849487 + - -0.016937256 + - -0.04626465 + - -0.04397583 + - 0.026245117 + - -0.017868042 + - 0.021072388 + - -0.02128601 + - -0.012161255 + - -0.004776001 + - -0.0088272095 + - 0.009246826 + - -0.012313843 + - 0.0096206665 + - -0.0047950745 + - -0.0079956055 + - 0.052520752 + - -0.06616211 + - 0.0014686584 + - -0.046081543 + - 0.03289795 + - -0.03656006 + - 0.055389404 + - 0.009773254 + - 0.0013818741 + - 0.043823242 + - 0.034942627 + - 0.055236816 + - -0.011833191 + - -0.024353027 + - 0.011398315 + - -0.051574707 + - -0.019882202 + - 0.0018358231 + - -0.005859375 + - 0.06677246 + - -0.0009851456 + - -0.026809692 + - 0.0075798035 + - -0.021347046 + - -0.01146698 + - 0.03262329 + - 0.031585693 + - -0.006729126 + - 0.008659363 + - -0.025665283 + - 0.02947998 + - -0.03744507 + - 0.02027893 + - -0.026062012 + - 0.018585205 + - -0.004463196 + - -0.036865234 + - -0.043670654 + - 0.021392822 + - -0.062561035 + - -0.080078125 + - 0.011451721 + - 0.06762695 + - 0.039001465 + - -0.016799927 + - 0.049072266 + - 0.041412354 + - -0.03062439 + - 0.011795044 + - -0.016555786 + - 0.046569824 + - 0.010688782 + - -0.01902771 + - -0.031097412 + - -0.023391724 + - -0.01651001 + - 0.009399414 + - 0.049041748 + - -0.025817871 + - -0.018356323 + - 0.02154541 + - -0.0029411316 + - 0.074157715 + - 0.017059326 + - -0.0017595291 + - 0.00390625 + - 0.02645874 + - -0.0010709763 + - 0.040222168 + - -0.034423828 + - 0.0231781 + - -0.016693115 + - -0.022094727 + - 0.004383087 + - 0.007331848 + - 0.018676758 + - 0.023773193 + - -0.0069770813 + - 0.0029773712 + - -0.023712158 + - -0.0051956177 + - -0.011810303 + - -0.0519104 + - 0.07244873 + - 0.032409668 + - 0.016662598 + - 0.015716553 + - -0.03640747 + - 0.03918457 + - -0.046722412 + - -0.0046081543 + - 0.006061554 + - -0.011940002 + - -0.0004878044 + - 0.01260376 + - 0.0073280334 + - 0.0015096664 + - 0.005844116 + - 0.029129028 + - 0.047668457 + - 0.05960083 + - -0.0647583 + - 0.064697266 + - -0.017440796 + - -0.01889038 + - 0.037628174 + - 0.0048065186 + - -0.023101807 + - -0.048675537 + - -0.02508545 + - -0.007965088 + - 0.0015897751 + - 0.06866455 + - -0.0099487305 + - -0.0022964478 + - -0.030014038 + - -0.007713318 + - -0.034362793 + - 0.013931274 + - 0.0026836395 + - -0.0014476776 + - 0.02532959 + - -0.020584106 + - -0.039001465 + - -0.062347412 + - -0.04736328 + - -0.024368286 + - -0.045776367 + - 0.03149414 + - -0.012825012 + - 0.028076172 + - 0.0058784485 + - 0.08062744 + - 0.0104599 + - 0.014579773 + - -0.041137695 + - 0.04244995 + - -0.021011353 + - 0.06390381 + - 0.0010871887 + - 0.04147339 + - -0.0053138733 + - 0.02268982 + - -0.028182983 + - -0.022628784 + - -0.021408081 + - -0.006088257 + - 0.028030396 + - 0.025146484 + - 0.00881958 + - -0.04244995 + - 0.027938843 + - 0.013916016 + - -0.04647827 + - 0.0072288513 + - 0.017745972 + - -0.02381897 + - -0.010147095 + - 0.0096588135 + - -0.04586792 + - -0.014480591 + - -0.0027217865 + - -0.03111267 + - 0.04522705 + - -0.02772522 + - -0.0013189316 + - 0.017807007 + - -0.0135269165 + - -0.014175415 + - -0.00019681454 + - 0.03161621 + - 0.0041007996 + - -0.024871826 + - 0.0039367676 + - -0.026916504 + - 0.03237915 + - 0.007068634 + - 0.029647827 + - -0.0102005005 + - 0.0076675415 + - 0.0051078796 + - -0.008041382 + - -0.0062942505 + - 0.0010309219 + - 0.010543823 + - -0.010101318 + - -0.013496399 + - 0.00920105 + - 0.0546875 + - -0.02784729 + - -0.0056762695 + - -0.08679199 + - -0.050048828 + - 0.03378296 + - 0.010124207 + - 0.019058228 + - -0.037872314 + - -0.0063323975 + - 0.0014324188 + - -0.010002136 + - -0.015731812 + - -0.036071777 + - -0.0028915405 + - -0.0082092285 + - 0.0037841797 + - -0.020629883 + - 0.01725769 + - -0.026000977 + - 0.00012862682 + - 0.021621704 + - 0.07086182 + - -0.008049011 + - -0.012634277 + - -0.064941406 + - -0.0073013306 + - -0.02760315 + - -0.040649414 + - 0.02809143 + - 0.009849548 + - 0.0011720657 + - 0.059936523 + - -0.032806396 + - 0.06311035 + - 0.009536743 + - 0.014801025 + - 0.03390503 + - -0.002620697 + - -0.04650879 + - -0.015365601 + - 0.03741455 + - -0.0067443848 + - -0.008888245 + - -0.0013017654 + - -0.010154724 + - 0.0027217865 + - 0.016052246 + - 0.025100708 + - -0.030532837 + - 0.032318115 + - 0.014564514 + - -0.009109497 + - 0.009628296 + - -0.021438599 + - -0.049926758 + - -0.00088214874 + - -0.019638062 + - -0.020126343 + - 0.055847168 + - -0.006729126 + - -0.044921875 + - -0.01890564 + - -0.0026683807 + - 0.0038547516 + - 0.004600525 + - -0.013977051 + - 0.018341064 + - -0.05178833 + - 0.011054993 + - 0.019927979 + - 0.011436462 + - 0.010391235 + - -0.012680054 + - -0.017669678 + - 0.01928711 + - 0.025115967 + - -0.07757568 + - -0.030960083 + - 0.013137817 + - -0.066467285 + - -0.054473877 + - -0.04244995 + - -0.027526855 + - 0.02973938 + - -0.024017334 + - -0.03918457 + - 0.0154800415 + - -0.036315918 + - 0.015510559 + - -0.020385742 + - -0.0390625 + - -0.00137043 + - 0.0016002655 + - -0.010238647 + - 0.014656067 + - 0.029373169 + - -0.027023315 + - 0.0076141357 + - -0.001917839 + - 0.03451538 + - 0.004814148 + - 0.024887085 + - 0.036315918 + - -0.006500244 + - -0.070495605 + - -0.0071754456 + - 0.025863647 + - 0.022994995 + - 0.007217407 + - 0.032165527 + - 0.016830444 + - 0.02859497 + - -0.011123657 + - 0.020126343 + - -0.0014410019 + - 0.0021781921 + - 0.053619385 + - 0.015625 + - 0.017150879 + - -0.03326416 + - -0.04626465 + - 0.034332275 + - 0.07165527 + - -0.040740967 + - -0.06628418 + - -0.024291992 + - -0.0066871643 + - 0.065979004 + - 0.034851074 + - 0.07678223 + - 0.053009033 + - 0.0317688 + - -0.04019165 + - 0.030288696 + - 0.062347412 + - -0.011734009 + - 0.0024604797 + - 0.006095886 + - -0.0152282715 + - 0.056762695 + - 0.021270752 + - -0.011154175 + - -0.0143966675 + - 0.0057754517 + - -0.0003619194 + - 0.0053367615 + - -0.030639648 + - 0.0024776459 + - -0.031799316 + - -0.012710571 + - 0.048828125 + - 0.029632568 + - 0.013244629 + - 0.087890625 + - -0.01134491 + - 0.028656006 + - -0.014778137 + - 0.06695557 + - 0.026275635 + - -0.016113281 + - 0.018859863 + - -0.008239746 + - 0.024383545 + - -0.039154053 + - -0.006252289 + - 0.049224854 + - -0.04638672 + - 0.0031967163 + - -0.04849243 + - -0.04058838 + - 0.038757324 + - 0.00730896 + - -0.04345703 + - 0.04296875 + - -0.0024299622 + - -0.05670166 + - 0.019119263 + - -0.011802673 + - 0.038970947 + - -0.03366089 + - 0.03591919 + - -0.0009088516 + - 0.013259888 + - -0.07342529 + - 0.004299164 + - 0.0395813 + - 0.013420105 + - -0.004459381 + - -0.0084991455 + - 0.031982422 + - 0.018249512 + - -0.0038604736 + - -0.022323608 + - -0.013031006 + - 0.0513916 + - -0.007068634 + - -0.003545761 + - 0.010292053 + - -0.010322571 + - -0.0037841797 + - 0.043701172 + - -0.012672424 + - 0.013725281 + - 0.021575928 + - -0.03942871 + - -0.0105896 + - -0.01878357 + - -0.017623901 + - -0.03414917 + - 0.02142334 + - 0.026550293 + - -0.022903442 + - 0.008598328 + - 0.03100586 + - 0.049957275 + - 0.021438599 + - 0.016204834 + - -0.014129639 + - 0.0079193115 + - -0.004535675 + - 0.0010051727 + - -0.038208008 + - -0.014923096 + - -0.01436615 + - -0.009666443 + - 0.0006933212 + - 0.0132369995 + - 0.01486969 + - 0.028762817 + - 0.011329651 + - -0.042663574 + - 0.014961243 + - -0.018127441 + - -0.007232666 + - 0.008369446 + - 0.027557373 + - 0.006706238 + - -0.05038452 + - -0.023666382 + - -0.0072898865 + - -0.007865906 + - -0.008926392 + - -0.013137817 + - 0.08886719 + - 0.030929565 + - 0.021255493 + - -0.0020389557 + - -0.08337402 + - -0.020385742 + - 0.03866577 + - -0.020523071 + - 0.021881104 + - 0.005756378 + - 0.022003174 + - 0.021209717 + - -0.06161499 + - -0.020309448 + - -0.0057258606 + - -0.033813477 + - 0.0017337799 + - -0.052612305 + - 0.01461792 + - -0.017944336 + - 0.042816162 + - -0.053710938 + - -0.041259766 + - -0.014549255 + - 0.020843506 + - -0.019760132 + - 0.004890442 + - -0.0007162094 + - -0.009429932 + - -0.01966858 + - -0.014320374 + - 0.041259766 + - 0.00075244904 + - -0.0064430237 + - 0.028961182 + - -0.01876831 + - 0.0027942657 + - -0.051116943 + - 0.00093746185 + - 0.0037384033 + - -0.06982422 + - -0.0107040405 + - 0.030090332 + - -0.019104004 + - -0.016647339 + - -0.037475586 + - 0.0140686035 + - -0.051086426 + - -0.032409668 + - -0.011131287 + - -0.023620605 + - -0.04159546 + - -0.034851074 + - -0.064941406 + - -0.03451538 + - 0.0047416687 + - -0.04510498 + - 0.020477295 + - -0.03024292 + - -0.034179688 + - 0.058410645 + - 0.008514404 + - 0.0049858093 + - 0.02331543 + - 0.03704834 + - -0.017333984 + - 0.014389038 + - 0.013786316 + - 0.008583069 + - -0.009643555 + - 0.020095825 + - 0.013496399 + - -0.01991272 + - -0.0446167 + - 0.0075149536 + - 0.0071029663 + - 0.0446167 + - -0.03933716 + - 0.009902954 + - 0.011077881 + - 0.008781433 + - -0.001701355 + - 0.016235352 + - 0.01802063 + - -0.010765076 + - -0.03427124 + - 0.0112838745 + - -0.023208618 + - -0.009979248 + - -0.010696411 + - -0.023208618 + - -0.026748657 + - -0.02923584 + - 0.013801575 + - -0.050323486 + - -0.0059661865 + - -0.004837036 + - 0.01940918 + - 0.00018620491 + - 0.0016450882 + - 0.019012451 + - -0.048034668 + - 0.034423828 + - -0.033599854 + - 0.020126343 + - -0.04949951 + - 0.071899414 + - -0.06060791 + - -0.043395996 + - 0.012138367 + - 0.022476196 + - 0.029006958 + - 0.04550171 + - -0.03564453 + - -0.015090942 + - 0.055541992 + - 0.014884949 + - 0.020767212 + - -0.01071167 + - 0.046905518 + - 0.033813477 + - -0.04260254 + - -0.00094127655 + - 0.016708374 + - -0.0011367798 + - -0.030426025 + - -0.03427124 + - 0.01763916 + - -0.012634277 + - 0.030517578 + - -0.055480957 + - -0.054992676 + - 0.056274414 + - -0.0007033348 + - -0.058624268 + - 0.0061531067 + - -0.008613586 + - 0.016067505 + - 0.003376007 + - -0.01586914 + - -0.025146484 + - 0.008491516 + - 0.053222656 + - -0.02923584 + - 0.021408081 + meta: + api_version: + version: "1" + api_version: v1 + EmbedByTypeResponse: + type: object + required: + - id + - embeddings + - texts + - api_version + properties: + response_type: + type: string + x-fern-audiences: + - public + enum: + - embeddings_floats + - embeddings_by_type + id: + type: string + x-fern-audiences: + - public + embeddings: + type: object + x-fern-audiences: + - public + description: An object with different embedding types. The length of each + embedding type array will be the same as the length of the original + `texts` array. + properties: + float: + type: array + x-fern-audiences: + - public + description: An array of float embeddings. + items: + type: array + x-fern-audiences: + - public + items: + type: number + x-fern-audiences: + - public + readOnly: true + readOnly: true + int8: + type: array + x-fern-audiences: + - public + description: An array of signed int8 embeddings. Each value is between -128 and + 127. + items: + type: array + x-fern-audiences: + - public + items: + type: integer + x-fern-audiences: + - public + readOnly: true + readOnly: true + uint8: + type: array + x-fern-audiences: + - public + description: An array of unsigned int8 embeddings. Each value is between 0 and + 255. + items: + type: array + x-fern-audiences: + - public + items: + type: integer + x-fern-audiences: + - public + readOnly: true + readOnly: true + binary: + type: array + x-fern-audiences: + - public + description: An array of packed signed binary embeddings. The length of each + binary embedding is 1/8 the length of the float embeddings of + the provided model. Each value is between -128 and 127. + items: + type: array + x-fern-audiences: + - public + items: + type: integer + x-fern-audiences: + - public + readOnly: true + readOnly: true + ubinary: + type: array + x-fern-audiences: + - public + description: An array of packed unsigned binary embeddings. The length of each + binary embedding is 1/8 the length of the float embeddings of + the provided model. Each value is between 0 and 255. + items: + type: array + x-fern-audiences: + - public + items: + type: integer + x-fern-audiences: + - public + readOnly: true + items: + type: array + x-fern-audiences: + - public + items: + type: number + x-fern-audiences: + - public + readOnly: true + readOnly: true + texts: + type: array + x-fern-audiences: + - public + description: The text entries for which embeddings were returned. + items: + type: string + x-fern-audiences: + - public + meta: + $ref: "#/components/schemas/ApiMeta" + x-fern-audiences: + - public + x-examples: + Example: + value: + id: bc57846a-3e56-4327-8acc-588ca1a37b8a + texts: + - hello world + embeddings: + float: + - - -0.039520264 + - -0.04574585 + - -0.08807373 + - -0.084106445 + - -0.009742737 + - -0.0090408325 + - -0.048187256 + - 0.07128906 + - 0.010688782 + - 0.016067505 + - -0.02822876 + - 0.036224365 + - 0.037994385 + - -0.041992188 + - 0.052124023 + - -0.027297974 + - 0.048309326 + - 0.017410278 + - 0.004283905 + - -0.0058555603 + - -0.012992859 + - 0.023040771 + - 0.00121212 + - 0.02078247 + - 0.04827881 + - -0.021530151 + - 0.017807007 + - 0.0075531006 + - -0.047912598 + - -0.042633057 + - 0.0016927719 + - 0.04547119 + - 0.0143585205 + - 0.022354126 + - 0.0017910004 + - 0.048614502 + - -0.02609253 + - 0.007850647 + - 0.00907135 + - 0.0035381317 + - 0.015289307 + - -0.008132935 + - 0.016296387 + - -0.02859497 + - -0.023712158 + - 0.008857727 + - -0.04309082 + - -0.025115967 + - 0.032928467 + - -0.029663086 + - 0.00434494 + - -0.022338867 + - -0.004371643 + - -0.0075035095 + - -0.009529114 + - 0.0038223267 + - -0.06048584 + - -0.018127441 + - 0.010131836 + - 0.08380127 + - 0.03652954 + - 0.0030384064 + - 0.006034851 + - -0.006286621 + - 0.016784668 + - -0.00308609 + - 0.01612854 + - 0.011413574 + - 0.022491455 + - 0.02482605 + - 0.0047683716 + - 0.012245178 + - -0.017593384 + - -0.023254395 + - -0.012641907 + - 0.030181885 + - -0.015365601 + - 0.031021118 + - 0.015144348 + - 0.016708374 + - 0.02180481 + - 0.010765076 + - -0.015586853 + - -0.05819702 + - 0.02128601 + - -0.021713257 + - -0.013320923 + - -0.0064849854 + - -0.001657486 + - -0.030715942 + - -0.008666992 + - 0.060668945 + - -0.0011959076 + - -0.032104492 + - -0.057006836 + - -0.015655518 + - -0.014015198 + - 0.036987305 + - 0.011016846 + - 0.037475586 + - -0.015319824 + - -0.016479492 + - 0.0030403137 + - -0.028167725 + - -0.0067825317 + - -0.00894928 + - -0.026107788 + - 0.010231018 + - 0.031707764 + - 0.050354004 + - -0.016220093 + - 0.04345703 + - -0.008888245 + - -0.0037784576 + - -0.034576416 + - 0.002565384 + - -0.0018634796 + - 0.013954163 + - 0.012062073 + - 0.046813965 + - 0.033081055 + - 0.028778076 + - 0.0051231384 + - 0.022094727 + - -0.021881104 + - -0.009788513 + - -0.04647827 + - -0.025482178 + - 0.066833496 + - -0.040863037 + - -0.019714355 + - 0.06866455 + - -0.07519531 + - -0.045532227 + - -0.020507812 + - 0.021331787 + - 0.036376953 + - -0.034210205 + - 0.017669678 + - 0.0155181885 + - 0.047698975 + - -0.010368347 + - 0.010879517 + - 0.016555786 + - -0.028076172 + - 0.03225708 + - -0.0056152344 + - -0.020690918 + - 0.00011438131 + - -0.021011353 + - -0.04425049 + - -0.029922485 + - -0.0014362335 + - 0.013618469 + - 0.011260986 + - 0.017532349 + - -0.043426514 + - 0.012557983 + - 0.026748657 + - 0.039154053 + - -0.030944824 + - 0.024169922 + - 0.06573486 + - -0.03817749 + - -0.025314331 + - -0.039794922 + - -0.050445557 + - -0.0020828247 + - -0.0010194778 + - 0.01725769 + - 0.0017976761 + - 0.029067993 + - 0.0115356445 + - 0.005214691 + - 0.0066604614 + - -0.014801025 + - -0.033172607 + - 0.023956299 + - 0.008865356 + - 0.09539795 + - 0.062286377 + - -0.0076408386 + - -0.035125732 + - 0.09082031 + - -0.015350342 + - -0.015625 + - -0.0090789795 + - -0.01876831 + - 0.05239868 + - -0.010406494 + - 0.05078125 + - -0.013694763 + - -0.07244873 + - 0.018539429 + - -0.016983032 + - -0.03353882 + - 0.01739502 + - 0.004055023 + - -0.010147095 + - -0.0027599335 + - -0.002714157 + - -0.0107040405 + - 0.021438599 + - -0.029525757 + - 0.01902771 + - -0.025909424 + - 0.0008072853 + - 0.026672363 + - 0.0019044876 + - 0.016937256 + - -0.018814087 + - -0.03668213 + - 0.03338623 + - -0.09240723 + - -0.024765015 + - -0.019378662 + - -0.051757812 + - 0.050109863 + - 0.018859863 + - 0.01687622 + - 0.020111084 + - -0.041534424 + - 0.009559631 + - -0.018859863 + - 0.00005853176 + - 0.032684326 + - -0.04058838 + - 0.015823364 + - -0.038635254 + - 0.0055656433 + - -0.021560669 + - 0.012481689 + - -0.050872803 + - -0.036071777 + - -0.046844482 + - -0.041900635 + - -0.06561279 + - 0.014785767 + - 0.010124207 + - 0.030426025 + - 0.024261475 + - 0.0057411194 + - -0.026275635 + - -0.006919861 + - 0.022750854 + - -0.015167236 + - 0.022964478 + - -0.0033664703 + - 0.02734375 + - 0.03201294 + - 0.025939941 + - 0.019104004 + - 0.028030396 + - -0.014328003 + - -0.01574707 + - 0.06982422 + - -0.008026123 + - 0.006816864 + - -0.0019035339 + - 0.026245117 + - -0.028945923 + - 0.014968872 + - 0.0054244995 + - -0.00028896332 + - -0.02243042 + - -0.0030822754 + - -0.02558899 + - -0.022918701 + - -0.017089844 + - -0.0035190582 + - 0.029953003 + - -0.037078857 + - -0.02507019 + - -0.017303467 + - 0.064331055 + - -0.028533936 + - -0.07287598 + - 0.028839111 + - -0.0029792786 + - -0.02104187 + - -0.01663208 + - -0.016571045 + - -0.015106201 + - 0.0027313232 + - 0.031051636 + - -0.025680542 + - 0.004722595 + - 0.032348633 + - 0.020019531 + - 0.056365967 + - 0.07208252 + - 0.01235199 + - 0.00084495544 + - 0.035369873 + - -0.018569946 + - -0.0063552856 + - 0.03161621 + - 0.064575195 + - -0.02557373 + - -0.007232666 + - -0.017700195 + - -0.003835678 + - 0.007381439 + - -0.0385437 + - -0.0019102097 + - -0.023223877 + - -0.0124435425 + - 0.013343811 + - 0.020996094 + - -0.014022827 + - -0.01939392 + - 0.044128418 + - 0.0052757263 + - -0.00068950653 + - -0.04876709 + - -0.05609131 + - -0.020874023 + - -0.00806427 + - -0.13391113 + - -0.06323242 + - -0.021865845 + - -0.021072388 + - 0.005832672 + - -0.015701294 + - -0.006286621 + - -0.012954712 + - -0.017288208 + - 0.0036773682 + - -0.0084991455 + - -0.03213501 + - 0.021987915 + - -0.010322571 + - -0.029144287 + - 0.003824234 + - 0.02708435 + - 0.0026187897 + - 0.05496216 + - -0.04916382 + - 0.005466461 + - -0.0070648193 + - 0.0793457 + - -0.040863037 + - 0.012641907 + - 0.016448975 + - 0.02041626 + - -0.029006958 + - -0.008491516 + - 0.0023422241 + - 0.043640137 + - 0.0121536255 + - -0.0043525696 + - -0.030899048 + - 0.0062332153 + - -0.013038635 + - 0.007904053 + - -0.03390503 + - -0.034729004 + - -0.0647583 + - -0.0052375793 + - -0.08154297 + - 0.015960693 + - 0.016235352 + - -0.012130737 + - -0.021469116 + - -0.03253174 + - -0.014465332 + - 0.016448975 + - 0.004589081 + - -0.05291748 + - 0.018005371 + - -0.002981186 + - -0.01247406 + - 0.023147583 + - -0.055419922 + - -0.08526611 + - 0.016723633 + - 0.012939453 + - -0.039031982 + - 0.016677856 + - 0.016937256 + - 0.023147583 + - 0.034576416 + - -0.010635376 + - 0.03466797 + - 0.037750244 + - 0.020141602 + - -0.0046539307 + - 0.0059432983 + - 0.05609131 + - 0.027709961 + - 0.01838684 + - 0.015022278 + - -0.039215088 + - -0.0048828125 + - 0.047546387 + - 0.0138549805 + - -0.046203613 + - 0.036193848 + - -0.109680176 + - 0.0019550323 + - -0.03125 + - 0.0084991455 + - -0.0020256042 + - -0.001739502 + - -0.06756592 + - 0.03491211 + - -0.05633545 + - -0.008491516 + - 0.0048446655 + - 0.042663574 + - 0.025054932 + - -0.022247314 + - -0.0044555664 + - 0.0022335052 + - -0.0071907043 + - -0.003982544 + - -0.073913574 + - -0.011253357 + - 0.029220581 + - -0.0047073364 + - -0.04626465 + - 0.05670166 + - -0.041503906 + - 0.014579773 + - -0.016174316 + - 0.021560669 + - -0.019332886 + - 0.01550293 + - 0.02709961 + - 0.010528564 + - 0.012786865 + - -0.023849487 + - -0.016937256 + - -0.04626465 + - -0.04397583 + - 0.026245117 + - -0.017868042 + - 0.021072388 + - -0.02128601 + - -0.012161255 + - -0.004776001 + - -0.0088272095 + - 0.009246826 + - -0.012313843 + - 0.0096206665 + - -0.0047950745 + - -0.0079956055 + - 0.052520752 + - -0.06616211 + - 0.0014686584 + - -0.046081543 + - 0.03289795 + - -0.03656006 + - 0.055389404 + - 0.009773254 + - 0.0013818741 + - 0.043823242 + - 0.034942627 + - 0.055236816 + - -0.011833191 + - -0.024353027 + - 0.011398315 + - -0.051574707 + - -0.019882202 + - 0.0018358231 + - -0.005859375 + - 0.06677246 + - -0.0009851456 + - -0.026809692 + - 0.0075798035 + - -0.021347046 + - -0.01146698 + - 0.03262329 + - 0.031585693 + - -0.006729126 + - 0.008659363 + - -0.025665283 + - 0.02947998 + - -0.03744507 + - 0.02027893 + - -0.026062012 + - 0.018585205 + - -0.004463196 + - -0.036865234 + - -0.043670654 + - 0.021392822 + - -0.062561035 + - -0.080078125 + - 0.011451721 + - 0.06762695 + - 0.039001465 + - -0.016799927 + - 0.049072266 + - 0.041412354 + - -0.03062439 + - 0.011795044 + - -0.016555786 + - 0.046569824 + - 0.010688782 + - -0.01902771 + - -0.031097412 + - -0.023391724 + - -0.01651001 + - 0.009399414 + - 0.049041748 + - -0.025817871 + - -0.018356323 + - 0.02154541 + - -0.0029411316 + - 0.074157715 + - 0.017059326 + - -0.0017595291 + - 0.00390625 + - 0.02645874 + - -0.0010709763 + - 0.040222168 + - -0.034423828 + - 0.0231781 + - -0.016693115 + - -0.022094727 + - 0.004383087 + - 0.007331848 + - 0.018676758 + - 0.023773193 + - -0.0069770813 + - 0.0029773712 + - -0.023712158 + - -0.0051956177 + - -0.011810303 + - -0.0519104 + - 0.07244873 + - 0.032409668 + - 0.016662598 + - 0.015716553 + - -0.03640747 + - 0.03918457 + - -0.046722412 + - -0.0046081543 + - 0.006061554 + - -0.011940002 + - -0.0004878044 + - 0.01260376 + - 0.0073280334 + - 0.0015096664 + - 0.005844116 + - 0.029129028 + - 0.047668457 + - 0.05960083 + - -0.0647583 + - 0.064697266 + - -0.017440796 + - -0.01889038 + - 0.037628174 + - 0.0048065186 + - -0.023101807 + - -0.048675537 + - -0.02508545 + - -0.007965088 + - 0.0015897751 + - 0.06866455 + - -0.0099487305 + - -0.0022964478 + - -0.030014038 + - -0.007713318 + - -0.034362793 + - 0.013931274 + - 0.0026836395 + - -0.0014476776 + - 0.02532959 + - -0.020584106 + - -0.039001465 + - -0.062347412 + - -0.04736328 + - -0.024368286 + - -0.045776367 + - 0.03149414 + - -0.012825012 + - 0.028076172 + - 0.0058784485 + - 0.08062744 + - 0.0104599 + - 0.014579773 + - -0.041137695 + - 0.04244995 + - -0.021011353 + - 0.06390381 + - 0.0010871887 + - 0.04147339 + - -0.0053138733 + - 0.02268982 + - -0.028182983 + - -0.022628784 + - -0.021408081 + - -0.006088257 + - 0.028030396 + - 0.025146484 + - 0.00881958 + - -0.04244995 + - 0.027938843 + - 0.013916016 + - -0.04647827 + - 0.0072288513 + - 0.017745972 + - -0.02381897 + - -0.010147095 + - 0.0096588135 + - -0.04586792 + - -0.014480591 + - -0.0027217865 + - -0.03111267 + - 0.04522705 + - -0.02772522 + - -0.0013189316 + - 0.017807007 + - -0.0135269165 + - -0.014175415 + - -0.00019681454 + - 0.03161621 + - 0.0041007996 + - -0.024871826 + - 0.0039367676 + - -0.026916504 + - 0.03237915 + - 0.007068634 + - 0.029647827 + - -0.0102005005 + - 0.0076675415 + - 0.0051078796 + - -0.008041382 + - -0.0062942505 + - 0.0010309219 + - 0.010543823 + - -0.010101318 + - -0.013496399 + - 0.00920105 + - 0.0546875 + - -0.02784729 + - -0.0056762695 + - -0.08679199 + - -0.050048828 + - 0.03378296 + - 0.010124207 + - 0.019058228 + - -0.037872314 + - -0.0063323975 + - 0.0014324188 + - -0.010002136 + - -0.015731812 + - -0.036071777 + - -0.0028915405 + - -0.0082092285 + - 0.0037841797 + - -0.020629883 + - 0.01725769 + - -0.026000977 + - 0.00012862682 + - 0.021621704 + - 0.07086182 + - -0.008049011 + - -0.012634277 + - -0.064941406 + - -0.0073013306 + - -0.02760315 + - -0.040649414 + - 0.02809143 + - 0.009849548 + - 0.0011720657 + - 0.059936523 + - -0.032806396 + - 0.06311035 + - 0.009536743 + - 0.014801025 + - 0.03390503 + - -0.002620697 + - -0.04650879 + - -0.015365601 + - 0.03741455 + - -0.0067443848 + - -0.008888245 + - -0.0013017654 + - -0.010154724 + - 0.0027217865 + - 0.016052246 + - 0.025100708 + - -0.030532837 + - 0.032318115 + - 0.014564514 + - -0.009109497 + - 0.009628296 + - -0.021438599 + - -0.049926758 + - -0.00088214874 + - -0.019638062 + - -0.020126343 + - 0.055847168 + - -0.006729126 + - -0.044921875 + - -0.01890564 + - -0.0026683807 + - 0.0038547516 + - 0.004600525 + - -0.013977051 + - 0.018341064 + - -0.05178833 + - 0.011054993 + - 0.019927979 + - 0.011436462 + - 0.010391235 + - -0.012680054 + - -0.017669678 + - 0.01928711 + - 0.025115967 + - -0.07757568 + - -0.030960083 + - 0.013137817 + - -0.066467285 + - -0.054473877 + - -0.04244995 + - -0.027526855 + - 0.02973938 + - -0.024017334 + - -0.03918457 + - 0.0154800415 + - -0.036315918 + - 0.015510559 + - -0.020385742 + - -0.0390625 + - -0.00137043 + - 0.0016002655 + - -0.010238647 + - 0.014656067 + - 0.029373169 + - -0.027023315 + - 0.0076141357 + - -0.001917839 + - 0.03451538 + - 0.004814148 + - 0.024887085 + - 0.036315918 + - -0.006500244 + - -0.070495605 + - -0.0071754456 + - 0.025863647 + - 0.022994995 + - 0.007217407 + - 0.032165527 + - 0.016830444 + - 0.02859497 + - -0.011123657 + - 0.020126343 + - -0.0014410019 + - 0.0021781921 + - 0.053619385 + - 0.015625 + - 0.017150879 + - -0.03326416 + - -0.04626465 + - 0.034332275 + - 0.07165527 + - -0.040740967 + - -0.06628418 + - -0.024291992 + - -0.0066871643 + - 0.065979004 + - 0.034851074 + - 0.07678223 + - 0.053009033 + - 0.0317688 + - -0.04019165 + - 0.030288696 + - 0.062347412 + - -0.011734009 + - 0.0024604797 + - 0.006095886 + - -0.0152282715 + - 0.056762695 + - 0.021270752 + - -0.011154175 + - -0.0143966675 + - 0.0057754517 + - -0.0003619194 + - 0.0053367615 + - -0.030639648 + - 0.0024776459 + - -0.031799316 + - -0.012710571 + - 0.048828125 + - 0.029632568 + - 0.013244629 + - 0.087890625 + - -0.01134491 + - 0.028656006 + - -0.014778137 + - 0.06695557 + - 0.026275635 + - -0.016113281 + - 0.018859863 + - -0.008239746 + - 0.024383545 + - -0.039154053 + - -0.006252289 + - 0.049224854 + - -0.04638672 + - 0.0031967163 + - -0.04849243 + - -0.04058838 + - 0.038757324 + - 0.00730896 + - -0.04345703 + - 0.04296875 + - -0.0024299622 + - -0.05670166 + - 0.019119263 + - -0.011802673 + - 0.038970947 + - -0.03366089 + - 0.03591919 + - -0.0009088516 + - 0.013259888 + - -0.07342529 + - 0.004299164 + - 0.0395813 + - 0.013420105 + - -0.004459381 + - -0.0084991455 + - 0.031982422 + - 0.018249512 + - -0.0038604736 + - -0.022323608 + - -0.013031006 + - 0.0513916 + - -0.007068634 + - -0.003545761 + - 0.010292053 + - -0.010322571 + - -0.0037841797 + - 0.043701172 + - -0.012672424 + - 0.013725281 + - 0.021575928 + - -0.03942871 + - -0.0105896 + - -0.01878357 + - -0.017623901 + - -0.03414917 + - 0.02142334 + - 0.026550293 + - -0.022903442 + - 0.008598328 + - 0.03100586 + - 0.049957275 + - 0.021438599 + - 0.016204834 + - -0.014129639 + - 0.0079193115 + - -0.004535675 + - 0.0010051727 + - -0.038208008 + - -0.014923096 + - -0.01436615 + - -0.009666443 + - 0.0006933212 + - 0.0132369995 + - 0.01486969 + - 0.028762817 + - 0.011329651 + - -0.042663574 + - 0.014961243 + - -0.018127441 + - -0.007232666 + - 0.008369446 + - 0.027557373 + - 0.006706238 + - -0.05038452 + - -0.023666382 + - -0.0072898865 + - -0.007865906 + - -0.008926392 + - -0.013137817 + - 0.08886719 + - 0.030929565 + - 0.021255493 + - -0.0020389557 + - -0.08337402 + - -0.020385742 + - 0.03866577 + - -0.020523071 + - 0.021881104 + - 0.005756378 + - 0.022003174 + - 0.021209717 + - -0.06161499 + - -0.020309448 + - -0.0057258606 + - -0.033813477 + - 0.0017337799 + - -0.052612305 + - 0.01461792 + - -0.017944336 + - 0.042816162 + - -0.053710938 + - -0.041259766 + - -0.014549255 + - 0.020843506 + - -0.019760132 + - 0.004890442 + - -0.0007162094 + - -0.009429932 + - -0.01966858 + - -0.014320374 + - 0.041259766 + - 0.00075244904 + - -0.0064430237 + - 0.028961182 + - -0.01876831 + - 0.0027942657 + - -0.051116943 + - 0.00093746185 + - 0.0037384033 + - -0.06982422 + - -0.0107040405 + - 0.030090332 + - -0.019104004 + - -0.016647339 + - -0.037475586 + - 0.0140686035 + - -0.051086426 + - -0.032409668 + - -0.011131287 + - -0.023620605 + - -0.04159546 + - -0.034851074 + - -0.064941406 + - -0.03451538 + - 0.0047416687 + - -0.04510498 + - 0.020477295 + - -0.03024292 + - -0.034179688 + - 0.058410645 + - 0.008514404 + - 0.0049858093 + - 0.02331543 + - 0.03704834 + - -0.017333984 + - 0.014389038 + - 0.013786316 + - 0.008583069 + - -0.009643555 + - 0.020095825 + - 0.013496399 + - -0.01991272 + - -0.0446167 + - 0.0075149536 + - 0.0071029663 + - 0.0446167 + - -0.03933716 + - 0.009902954 + - 0.011077881 + - 0.008781433 + - -0.001701355 + - 0.016235352 + - 0.01802063 + - -0.010765076 + - -0.03427124 + - 0.0112838745 + - -0.023208618 + - -0.009979248 + - -0.010696411 + - -0.023208618 + - -0.026748657 + - -0.02923584 + - 0.013801575 + - -0.050323486 + - -0.0059661865 + - -0.004837036 + - 0.01940918 + - 0.00018620491 + - 0.0016450882 + - 0.019012451 + - -0.048034668 + - 0.034423828 + - -0.033599854 + - 0.020126343 + - -0.04949951 + - 0.071899414 + - -0.06060791 + - -0.043395996 + - 0.012138367 + - 0.022476196 + - 0.029006958 + - 0.04550171 + - -0.03564453 + - -0.015090942 + - 0.055541992 + - 0.014884949 + - 0.020767212 + - -0.01071167 + - 0.046905518 + - 0.033813477 + - -0.04260254 + - -0.00094127655 + - 0.016708374 + - -0.0011367798 + - -0.030426025 + - -0.03427124 + - 0.01763916 + - -0.012634277 + - 0.030517578 + - -0.055480957 + - -0.054992676 + - 0.056274414 + - -0.0007033348 + - -0.058624268 + - 0.0061531067 + - -0.008613586 + - 0.016067505 + - 0.003376007 + - -0.01586914 + - -0.025146484 + - 0.008491516 + - 0.053222656 + - -0.02923584 + - 0.021408081 + ubinary: + - - 1 + - 218 + - 231 + - 179 + - 247 + - 164 + - 161 + - 62 + - 191 + - 23 + - 200 + - 16 + - 114 + - 29 + - 23 + - 240 + - 145 + - 187 + - 72 + - 119 + - 96 + - 126 + - 121 + - 10 + - 76 + - 43 + - 200 + - 122 + - 213 + - 7 + - 202 + - 249 + - 86 + - 2 + - 36 + - 27 + - 252 + - 194 + - 25 + - 128 + - 33 + - 39 + - 171 + - 156 + - 160 + - 195 + - 73 + - 189 + - 223 + - 53 + - 68 + - 228 + - 37 + - 94 + - 20 + - 41 + - 87 + - 228 + - 164 + - 213 + - 68 + - 237 + - 97 + - 150 + - 212 + - 244 + - 61 + - 39 + - 244 + - 195 + - 6 + - 129 + - 125 + - 116 + - 59 + - 100 + - 36 + - 107 + - 179 + - 48 + - 228 + - 21 + - 192 + - 247 + - 136 + - 118 + - 130 + - 26 + - 243 + - 33 + - 40 + - 181 + - 227 + - 245 + - 230 + - 31 + - 109 + - 149 + - 61 + - 106 + - 83 + - 74 + - 174 + - 98 + - 75 + - 6 + - 250 + - 135 + - 211 + - 129 + - 197 + - 225 + - 81 + - 67 + - 86 + - 68 + - 2 + - 159 + - 118 + - 119 + - 100 + - 8 + - 245 + - 79 + - 59 + - 34 + - 146 + - 205 + meta: + api_version: + version: "1" + api_version: v2 + EmbedJob: + type: object + required: + - job_id + - status + - created_at + - input_dataset_id + - model + - truncate + properties: + job_id: + type: string + x-fern-audiences: + - public + description: ID of the embed job + name: + type: string + x-fern-audiences: + - public + description: The name of the embed job + status: + type: string + x-fern-audiences: + - public + description: The status of the embed job + enum: + - processing + - complete + - cancelling + - cancelled + - failed + created_at: + type: string + x-fern-audiences: + - public + description: The creation date of the embed job + format: date-time + input_dataset_id: + type: string + x-fern-audiences: + - public + description: ID of the input dataset + output_dataset_id: + type: string + x-fern-audiences: + - public + description: ID of the resulting output dataset + model: + type: string + x-fern-audiences: + - public + description: ID of the model used to embed + truncate: + type: string + x-fern-audiences: + - public + description: The truncation option used + enum: + - START + - END + meta: + $ref: "#/components/schemas/ApiMeta" + x-fern-audiences: + - public + ListEmbedJobResponse: + type: object + properties: + embed_jobs: + type: array + items: + $ref: "#/components/schemas/EmbedJob" + x-fern-audiences: + - public + CreateEmbedJobRequest: + type: object + required: + - model + - dataset_id + - input_type + properties: + model: + type: string + x-fern-audiences: + - public + format: string + description: | + ID of the embedding model. + + Available models and corresponding embedding dimensions: + + - `embed-english-v3.0` : 1024 + - `embed-multilingual-v3.0` : 1024 + - `embed-english-light-v3.0` : 384 + - `embed-multilingual-light-v3.0` : 384 + dataset_id: + type: string + x-fern-audiences: + - public + description: ID of a [Dataset](https://docs.cohere.com/docs/datasets). The + Dataset must be of type `embed-input` and must have a validation + status `Validated` + input_type: + x-fern-audiences: + - public + $ref: "#/components/schemas/EmbedInputType" + name: + type: string + x-fern-audiences: + - public + description: The name of the embed job. + embedding_types: + type: array + x-fern-audiences: + - public + items: + $ref: "#/components/schemas/EmbeddingType" + description: |- + Specifies the types of embeddings you want to get back. Not required and default is None, which returns the Embed Floats response type. Can be one or more of the following types. + + * `"float"`: Use this when you want to get back the default float embeddings. Valid for all models. + * `"int8"`: Use this when you want to get back signed int8 embeddings. Valid for only v3 models. + * `"uint8"`: Use this when you want to get back unsigned int8 embeddings. Valid for only v3 models. + * `"binary"`: Use this when you want to get back signed binary embeddings. Valid for only v3 models. + * `"ubinary"`: Use this when you want to get back unsigned binary embeddings. Valid for only v3 models. + truncate: + type: string + x-fern-audiences: + - public + description: | + One of `START|END` to specify how the API will handle inputs longer than the maximum token length. + + Passing `START` will discard the start of the input. `END` will discard the end of the input. In both cases, input is discarded until the remaining input is exactly the maximum input token length for the model. + default: END + enum: + - START + - END + CreateEmbedJobResponse: + type: object + required: + - job_id + description: Response from creating an embed job. + properties: + job_id: + type: string + x-fern-audiences: + - public + meta: + $ref: "#/components/schemas/ApiMeta" + x-fern-audiences: + - public + RerankDocument: + type: object + x-fern-type: map + properties: + text: + type: string + x-fern-audiences: + - public + description: The text of the document to rerank. + required: + - text + ClassifyExample: + type: object + properties: + text: + type: string + x-fern-audiences: + - public + writeOnly: true + label: + type: string + x-fern-audiences: + - public + writeOnly: true + writeOnly: true + DatasetValidationStatus: + x-fern-audiences: + - public + description: The validation status of the dataset + type: string + enum: + - unknown + - queued + - processing + - failed + - validated + - skipped + DatasetType: + x-fern-audiences: + - public + description: The type of the dataset + type: string + enum: + - embed-input + - embed-result + - cluster-result + - cluster-outliers + - reranker-finetune-input + - single-label-classification-finetune-input + - chat-finetune-input + - multi-label-classification-finetune-input + DatasetPart: + type: object + required: + - id + - name + properties: + id: + type: string + x-fern-audiences: + - public + description: The dataset part ID + name: + type: string + x-fern-audiences: + - public + description: The name of the dataset part + url: + type: string + x-fern-audiences: + - public + description: The download url of the file + index: + type: integer + x-fern-audiences: + - public + format: int32 + description: The index of the file + size_bytes: + type: integer + x-fern-audiences: + - public + format: int32 + description: The size of the file in bytes + num_rows: + type: integer + x-fern-audiences: + - public + format: int32 + description: The number of rows in the file + original_url: + type: string + x-fern-audiences: + - public + description: The download url of the original file + samples: + type: array + x-fern-audiences: + - public + items: + type: string + x-fern-audiences: + - public + description: The first few rows of the parsed file + ParseInfo: + type: object + properties: + separator: + type: string + x-fern-audiences: + - public + writeOnly: true + delimiter: + type: string + x-fern-audiences: + - public + writeOnly: true + writeOnly: true + RerankerDataMetrics: + type: object + properties: + num_train_queries: + type: number + format: int64 + description: The number of training queries. + x-fern-audiences: + - public + num_train_relevant_passages: + type: number + format: int64 + description: The sum of all relevant passages of valid training examples. + x-fern-audiences: + - public + num_train_hard_negatives: + type: number + format: int64 + description: The sum of all hard negatives of valid training examples. + x-fern-audiences: + - public + num_eval_queries: + type: number + format: int64 + description: The number of evaluation queries. + x-fern-audiences: + - public + num_eval_relevant_passages: + type: number + format: int64 + description: The sum of all relevant passages of valid eval examples. + x-fern-audiences: + - public + num_eval_hard_negatives: + type: number + format: int64 + description: The sum of all hard negatives of valid eval examples. + x-fern-audiences: + - public + ChatDataMetrics: + type: object + properties: + num_train_turns: + type: number + format: int64 + description: The sum of all turns of valid train examples. + x-fern-audiences: + - public + num_eval_turns: + type: number + format: int64 + description: The sum of all turns of valid eval examples. + x-fern-audiences: + - public + preamble: + type: string + description: The preamble of this dataset. + x-fern-audiences: + - public + LabelMetric: + type: object + properties: + total_examples: + type: number + format: int64 + description: Total number of examples for this label + x-fern-audiences: + - public + label: + type: string + description: value of the label + x-fern-audiences: + - public + samples: + type: array + items: + type: string + description: samples for this label + x-fern-audiences: + - public + ClassifyDataMetrics: + type: object + properties: + label_metrics: + type: array + items: + $ref: "#/components/schemas/LabelMetric" + FinetuneDatasetMetrics: + type: object + properties: + trainable_token_count: + type: number + format: int64 + description: The number of tokens of valid examples that can be used for training. + x-fern-audiences: + - public + total_examples: + type: number + format: int64 + description: The overall number of examples. + x-fern-audiences: + - public + train_examples: + type: number + format: int64 + description: The number of training examples. + x-fern-audiences: + - public + train_size_bytes: + type: number + format: int64 + description: The size in bytes of all training examples. + x-fern-audiences: + - public + eval_examples: + type: number + format: int64 + description: Number of evaluation examples. + x-fern-audiences: + - public + eval_size_bytes: + type: number + format: int64 + description: The size in bytes of all eval examples. + x-fern-audiences: + - public + reranker_data_metrics: + $ref: "#/components/schemas/RerankerDataMetrics" + chat_data_metrics: + $ref: "#/components/schemas/ChatDataMetrics" + classify_data_metrics: + $ref: "#/components/schemas/ClassifyDataMetrics" + Metrics: + type: object + properties: + finetune_dataset_metrics: + $ref: "#/components/schemas/FinetuneDatasetMetrics" + Dataset: + type: object + required: + - id + - name + - created_at + - updated_at + - dataset_type + - validation_status + properties: + id: + type: string + x-fern-audiences: + - public + description: The dataset ID + name: + type: string + x-fern-audiences: + - public + description: The name of the dataset + created_at: + type: string + x-fern-audiences: + - public + format: date-time + description: The creation date + updated_at: + type: string + x-fern-audiences: + - public + format: date-time + description: The last update date + dataset_type: + x-fern-audiences: + - public + $ref: "#/components/schemas/DatasetType" + validation_status: + x-fern-audiences: + - public + $ref: "#/components/schemas/DatasetValidationStatus" + validation_error: + type: string + x-fern-audiences: + - public + description: Errors found during validation + schema: + type: string + x-fern-audiences: + - public + description: the avro schema of the dataset + required_fields: + type: array + x-fern-audiences: + - public + items: + type: string + x-fern-audiences: + - public + preserve_fields: + type: array + x-fern-audiences: + - public + items: + type: string + x-fern-audiences: + - public + dataset_parts: + type: array + x-fern-audiences: + - public + items: + $ref: "#/components/schemas/DatasetPart" + description: the underlying files that make up the dataset + validation_warnings: + type: array + x-fern-audiences: + - public + items: + type: string + x-fern-audiences: + - public + description: warnings found during validation + parse_info: + $ref: "#/components/schemas/ParseInfo" + metrics: + $ref: "#/components/schemas/Metrics" + ConnectorOAuth: + type: object + required: + - authorize_url + - token_url + properties: + client_id: + type: string + x-fern-audiences: + - public + description: The OAuth 2.0 client ID. This field is encrypted at rest. + client_secret: + type: string + x-fern-audiences: + - public + description: The OAuth 2.0 client Secret. This field is encrypted at rest and + never returned in a response. + authorize_url: + type: string + x-fern-audiences: + - public + description: The OAuth 2.0 /authorize endpoint to use when users authorize the + connector. + token_url: + type: string + x-fern-audiences: + - public + description: The OAuth 2.0 /token endpoint to use when users authorize the + connector. + scope: + type: string + x-fern-audiences: + - public + description: The OAuth scopes to request when users authorize the connector. + Connector: + description: |- + A connector allows you to integrate data sources with the '/chat' endpoint to create grounded generations with citations to the data source. + documents to help answer users. + type: object + required: + - id + - name + - created_at + - updated_at + properties: + id: + type: string + x-fern-audiences: + - public + description: |- + The unique identifier of the connector (used in both `/connectors` & `/chat` endpoints). + This is automatically created from the name of the connector upon registration. + organization_id: + type: string + x-fern-audiences: + - public + description: |- + The organization to which this connector belongs. This is automatically set to + the organization of the user who created the connector. + name: + type: string + x-fern-audiences: + - public + description: A human-readable name for the connector. + description: + type: string + x-fern-audiences: + - public + description: A description of the connector. + url: + type: string + x-fern-audiences: + - public + description: The URL of the connector that will be used to search for documents. + created_at: + type: string + x-fern-audiences: + - public + format: date-time + description: The UTC time at which the connector was created. + updated_at: + type: string + x-fern-audiences: + - public + format: date-time + description: The UTC time at which the connector was last updated. + excludes: + description: A list of fields to exclude from the prompt (fields remain in the + document). + type: array + x-fern-audiences: + - public + items: + type: string + x-fern-audiences: + - public + auth_type: + description: "The type of authentication/authorization used by the connector. + Possible values: [oauth, service_auth]" + type: string + x-fern-audiences: + - public + format: enum + oauth: + $ref: "#/components/schemas/ConnectorOAuth" + x-fern-audiences: + - public + description: The OAuth 2.0 configuration for the connector. + auth_status: + type: string + x-fern-audiences: + - public + enum: + - valid + - expired + description: The OAuth status for the user making the request. One of ["valid", + "expired", ""]. Empty string (field is omitted) means the user has + not authorized the connector yet. + active: + type: boolean + x-fern-audiences: + - public + description: Whether the connector is active or not. + continue_on_failure: + type: boolean + x-fern-audiences: + - public + description: Whether a chat request should continue or not if the request to + this connector fails. + ListConnectorsResponse: + type: object + required: + - connectors + properties: + connectors: + type: array + x-fern-audiences: + - public + items: + $ref: "#/components/schemas/Connector" + total_count: + type: number + x-fern-audiences: + - public + description: Total number of connectors. + readOnly: true + CreateConnectorOAuth: + required: + - clientId + - clientSecret + - authorizeUrl + - tokenUrl + type: object + properties: + client_id: + type: string + x-fern-audiences: + - public + description: The OAuth 2.0 client ID. This fields is encrypted at rest. + client_secret: + type: string + x-fern-audiences: + - public + description: The OAuth 2.0 client Secret. This field is encrypted at rest and + never returned in a response. + authorize_url: + type: string + x-fern-audiences: + - public + description: The OAuth 2.0 /authorize endpoint to use when users authorize the + connector. + token_url: + type: string + x-fern-audiences: + - public + description: The OAuth 2.0 /token endpoint to use when users authorize the + connector. + scope: + type: string + x-fern-audiences: + - public + description: The OAuth scopes to request when users authorize the connector. + AuthTokenType: + type: string + description: The token_type specifies the way the token is passed in the + Authorization header. Valid values are "bearer", "basic", and + "noscheme". + enum: + - bearer + - basic + - noscheme + default: noscheme + CreateConnectorServiceAuth: + required: + - type + - token + type: object + properties: + type: + x-fern-audiences: + - public + $ref: "#/components/schemas/AuthTokenType" + token: + type: string + x-fern-audiences: + - public + description: The token that will be used in the HTTP Authorization header when + making requests to the connector. This field is encrypted at rest + and never returned in a response. + CreateConnectorRequest: + type: object + required: + - name + - url + properties: + name: + type: string + x-fern-audiences: + - public + description: A human-readable name for the connector. + description: + type: string + x-fern-audiences: + - public + description: A description of the connector. + url: + type: string + x-fern-audiences: + - public + description: The URL of the connector that will be used to search for documents. + excludes: + description: A list of fields to exclude from the prompt (fields remain in the + document). + type: array + x-fern-audiences: + - public + items: + type: string + x-fern-audiences: + - public + oauth: + $ref: "#/components/schemas/CreateConnectorOAuth" + x-fern-audiences: + - public + description: The OAuth 2.0 configuration for the connector. Cannot be specified + if service_auth is specified. + active: + type: boolean + x-fern-audiences: + - public + default: true + description: Whether the connector is active or not. + continue_on_failure: + type: boolean + x-fern-audiences: + - public + default: false + description: Whether a chat request should continue or not if the request to + this connector fails. + service_auth: + x-fern-audiences: + - public + $ref: "#/components/schemas/CreateConnectorServiceAuth" + description: The service to service authentication configuration for the + connector. Cannot be specified if oauth is specified. + CreateConnectorResponse: + type: object + required: + - connector + properties: + connector: + $ref: "#/components/schemas/Connector" + GetConnectorResponse: + type: object + required: + - connector + properties: + connector: + $ref: "#/components/schemas/Connector" + DeleteConnectorResponse: + type: object + UpdateConnectorRequest: + type: object + properties: + name: + type: string + x-fern-audiences: + - public + description: A human-readable name for the connector. + url: + type: string + x-fern-audiences: + - public + description: The URL of the connector that will be used to search for documents. + excludes: + description: A list of fields to exclude from the prompt (fields remain in the + document). + type: array + x-fern-audiences: + - public + items: + type: string + x-fern-audiences: + - public + oauth: + $ref: "#/components/schemas/CreateConnectorOAuth" + x-fern-audiences: + - public + description: The OAuth 2.0 configuration for the connector. Cannot be specified + if service_auth is specified. + active: + type: boolean + x-fern-audiences: + - public + default: true + continue_on_failure: + type: boolean + x-fern-audiences: + - public + default: false + service_auth: + x-fern-audiences: + - public + $ref: "#/components/schemas/CreateConnectorServiceAuth" + description: The service to service authentication configuration for the + connector. Cannot be specified if oauth is specified. + UpdateConnectorResponse: + type: object + required: + - connector + properties: + connector: + $ref: "#/components/schemas/Connector" + OAuthAuthorizeResponse: + type: object + properties: + redirect_url: + type: string + x-fern-audiences: + - public + description: The OAuth 2.0 redirect url. Redirect the user to this url to + authorize the connector. + ConnectorLog: + type: object + required: + - id + - connector_id + - request_id + - user_id + - organization_id + - created_at + - status_code + - duration_millis + properties: + id: + type: string + description: Unique identifier for the connector log + connector_id: + type: string + description: Unique identifier for the connector + request_id: + type: string + description: Unique identifier for the request + user_id: + type: string + description: Unique identifier for the user + organization_id: + type: string + description: Unique identifier for the organization + created_at: + type: string + description: Time of connector log creation in RFC3339 format + format: date-time + example: 2023-04-28T21:00:56.646257Z + status_code: + type: integer + description: HTTP status code of the request + duration_millis: + type: integer + description: Duration of the request in milliseconds + error_message: + type: string + description: Error message of the request + GetConnectorsLogsResponse: + type: object + required: + - connector_logs + - total + properties: + connector_logs: + type: array + items: + $ref: "#/components/schemas/ConnectorLog" + total: + type: number + description: Total number of connector logs + readOnly: true + TokenLikelihood: + type: object + properties: + encoded: + description: Tokenized text + type: integer + x-fern-audiences: + - public + decoded: + description: Detokenized text + type: string + x-fern-audiences: + - public + log_likelihood: + description: Non normalized probability of the token + type: number + x-fern-audiences: + - public + LogLikelihoodResponse: + type: object + required: + - id + - prompt_tokens + - completion_tokens + - raw_prompt_tokens + properties: + id: + type: string + x-fern-audiences: + - public + prompt_tokens: + description: Probabilities for tokens in the request prompt + type: array + x-fern-audiences: + - public + items: + $ref: "#/components/schemas/TokenLikelihood" + completion_tokens: + description: Probabilities for tokens in the request completion + type: array + x-fern-audiences: + - public + items: + $ref: "#/components/schemas/TokenLikelihood" + raw_prompt_tokens: + description: Probabilities for tokens in the request raw_prompt + type: array + x-fern-audiences: + - public + items: + $ref: "#/components/schemas/TokenLikelihood" + meta: + $ref: "#/components/schemas/ApiMeta" + x-fern-audiences: + - public + Cluster: + type: object + properties: + id: + type: string + x-fern-audiences: + - public + keywords: + type: array + x-fern-audiences: + - public + items: + type: string + x-fern-audiences: + - public + description: + type: string + x-fern-audiences: + - public + size: + type: integer + x-fern-audiences: + - public + sample_elements: + type: array + x-fern-audiences: + - public + items: + type: string + x-fern-audiences: + - public + GetClusterJobResponse: + type: object + required: + - job_id + properties: + job_id: + type: string + x-fern-audiences: + - public + created_at: + type: string + x-fern-audiences: + - public + description: Time of job creation in RFC3339 format + format: date-time + example: 2023-04-28T21:00:56.646257Z + readOnly: true + embeddings_url: + type: string + x-fern-audiences: + - public + description: The input file URL used for the job + readOnly: true + input_dataset_id: + type: string + x-fern-audiences: + - public + description: The input dataset ID used for the job + readOnly: true + min_cluster_size: + type: integer + x-fern-audiences: + - public + description: The parameter used in the job creation. Please refer to the job + creation endpoint for more details + readOnly: true + n_neighbors: + type: integer + x-fern-audiences: + - public + description: The parameter used in the job creation. Please refer to the job + creation endpoint for more details + readOnly: true + is_deterministic: + type: boolean + x-fern-audiences: + - public + description: The parameter used in the job creation. Please refer to the job + creation endpoint for more details + readOnly: true + status: + type: string + x-fern-audiences: + - public + enum: + - unknown + - processing + - failed + - complete + - queued + is_final_state: + type: boolean + x-fern-audiences: + - public + description: A boolean indicating whether the job is in a final state, whether + completed or failed + readOnly: true + output_clusters_url: + type: string + x-fern-audiences: + - public + description: The output file URL for the clusters (signed url that expires) + readOnly: true + output_outliers_url: + type: string + x-fern-audiences: + - public + description: The output file URL for the outliers (signed url that expires) + readOnly: true + clusters: + type: array + x-fern-audiences: + - public + description: The list of cluster summaries for the job + readOnly: true + items: + $ref: "#/components/schemas/Cluster" + error: + type: string + x-fern-audiences: + - public + meta: + $ref: "#/components/schemas/ApiMeta" + x-fern-audiences: + - public + description: Response for getting a cluster job. + ListClusterJobsResponse: + type: object + required: + - jobs + properties: + jobs: + type: array + x-fern-audiences: + - public + items: + $ref: "#/components/schemas/GetClusterJobResponse" + total_count: + type: integer + x-fern-audiences: + - public + meta: + $ref: "#/components/schemas/ApiMeta" + x-fern-audiences: + - public + CreateClusterJobRequest: + type: object + required: + - embeddings_url + properties: + embeddings_url: + type: string + x-fern-audiences: + - public + input_dataset_id: + type: string + x-fern-audiences: + - public + min_cluster_size: + type: integer + x-fern-audiences: + - public + description: Defaults to `10`. Parameter for HDBSCAN. Only clusters with this + number of elements will be returned with a positive cluster number. + default: 10 + minimum: 1 + n_neighbors: + type: integer + x-fern-audiences: + - public + description: Parameter for UMAP. A scalar governing how to balance global vs + local structure in the data. + minimum: 2 + maximum: 100 + default: 15 + is_deterministic: + type: boolean + x-fern-audiences: + - public + description: Parameter for UMAP. A boolean governing whether the embeddings from + UMAP (that will be clustered with HDBSCAN) are deterministic. + default: true + generate_descriptions: + type: boolean + x-fern-audiences: + - public + CreateClusterJobResponse: + type: object + required: + - job_id + properties: + job_id: + type: string + x-fern-audiences: + - public + description: Response for creating a cluster job. + UpdateClusterJobRequest: + type: object + properties: + status: + type: string + x-fern-audiences: + - public + enum: + - unknown + - processing + - failed + - complete + - queued + clusters: + type: array + x-fern-audiences: + - public + items: + $ref: "#/components/schemas/Cluster" + output_clusters_gs_path: + type: string + x-fern-audiences: + - public + output_outliers_gs_path: + type: string + x-fern-audiences: + - public + error: + type: string + x-fern-audiences: + - public + input_tracking_metrics: + type: object + x-fern-audiences: + - public + output_tracking_metrics: + type: object + x-fern-audiences: + - public + UpdateClusterJobResponse: + type: object + required: + - job_id + properties: + job_id: + type: string + x-fern-audiences: + - public + description: Response for updating a cluster job. + CompatibleEndpoint: + type: string + description: One of the Cohere API endpoints that the model can be used with. + enum: + - chat + - embed + - classify + - summarize + - rerank + - rate + - generate + GetModelResponse: + description: Contains information about the model and which API endpoints it can + be used with. + type: object + properties: + name: + type: string + x-fern-audiences: + - public + description: Specify this name in the `model` parameter of API requests to use + your chosen model. + endpoints: + type: array + x-fern-audiences: + - public + items: + $ref: "#/components/schemas/CompatibleEndpoint" + description: The API endpoints that the model is compatible with. + finetuned: + type: boolean + x-fern-audiences: + - public + description: Whether the model has been fine-tuned or not. + context_length: + type: number + x-fern-audiences: + - public + description: The maximum number of tokens that the model can process in a single + request. Note that not all of these tokens are always available due + to special tokens and preambles that Cohere has added by default. + tokenizer_url: + type: string + x-fern-audiences: + - public + description: Public URL to the tokenizer's configuration file. + default_endpoints: + type: array + x-fern-audiences: + - public + items: + $ref: "#/components/schemas/CompatibleEndpoint" + description: The API endpoints that the model is default to. + ListModelsResponse: + type: object + required: + - models + properties: + models: + type: array + x-fern-audiences: + - public + items: + $ref: "#/components/schemas/GetModelResponse" + next_page_token: + type: string + x-fern-audiences: + - public + description: A token to retrieve the next page of results. Provide in the + page_token parameter of the next request. + BaseType: + type: string + enum: + - BASE_TYPE_UNSPECIFIED + - BASE_TYPE_GENERATIVE + - BASE_TYPE_CLASSIFICATION + - BASE_TYPE_RERANK + - BASE_TYPE_CHAT + default: BASE_TYPE_UNSPECIFIED + description: |- + The possible types of fine-tuned models. + + - BASE_TYPE_UNSPECIFIED: Unspecified model. + - BASE_TYPE_GENERATIVE: Generative model. + - BASE_TYPE_CLASSIFICATION: Classification model. + - BASE_TYPE_RERANK: Rerank model. + - BASE_TYPE_CHAT: Chat model. + x-fern-sdk-group-name: + - finetuning + - finetuning + Strategy: + type: string + enum: + - STRATEGY_UNSPECIFIED + - STRATEGY_VANILLA + - STRATEGY_TFEW + default: STRATEGY_UNSPECIFIED + description: |- + The possible strategy used to serve a fine-tuned models. + + - STRATEGY_UNSPECIFIED: Unspecified strategy. + - STRATEGY_VANILLA: Serve the fine-tuned model on a dedicated GPU. + - STRATEGY_TFEW: Serve the fine-tuned model on a shared GPU. + x-fern-sdk-group-name: + - finetuning + - finetuning + BaseModel: + type: object + properties: + name: + type: string + description: The name of the base model. + version: + type: string + description: read-only. The version of the base model. + readOnly: true + base_type: + $ref: "#/components/schemas/BaseType" + description: The type of the base model. + strategy: + $ref: "#/components/schemas/Strategy" + description: The fine-tuning strategy. + description: The base model used for fine-tuning. + required: + - base_type + x-fern-sdk-group-name: + - finetuning + - finetuning + Hyperparameters: + type: object + properties: + early_stopping_patience: + type: integer + format: int32 + description: |- + Stops training if the loss metric does not improve beyond the value of + `early_stopping_threshold` after this many times of evaluation. + early_stopping_threshold: + type: number + format: double + description: How much the loss must improve to prevent early stopping. + train_batch_size: + type: integer + format: int32 + description: |- + The batch size is the number of training examples included in a single + training pass. + train_epochs: + type: integer + format: int32 + description: The number of epochs to train for. + learning_rate: + type: number + format: double + description: The learning rate to be used during training. + description: The fine-tuning hyperparameters. + x-fern-sdk-group-name: + - finetuning + - finetuning + Settings: + type: object + properties: + base_model: + $ref: "#/components/schemas/BaseModel" + description: The base model to fine-tune. + dataset_id: + type: string + description: The data used for training and evaluating the fine-tuned model. + hyperparameters: + $ref: "#/components/schemas/Hyperparameters" + description: Fine-tuning hyper-parameters. + multi_label: + type: boolean + description: read-only. Whether the model is single-label or multi-label (only + for classification). + readOnly: true + description: The configuration used for fine-tuning. + required: + - base_model + - dataset_id + x-fern-sdk-group-name: + - finetuning + - finetuning + Status: + type: string + enum: + - STATUS_UNSPECIFIED + - STATUS_FINETUNING + - STATUS_DEPLOYING_API + - STATUS_READY + - STATUS_FAILED + - STATUS_DELETED + - STATUS_TEMPORARILY_OFFLINE + - STATUS_PAUSED + - STATUS_QUEUED + default: STATUS_UNSPECIFIED + description: |- + The possible stages of a fine-tuned model life-cycle. + + - STATUS_UNSPECIFIED: Unspecified status. + - STATUS_FINETUNING: The fine-tuned model is being fine-tuned. + - STATUS_DEPLOYING_API: The fine-tuned model is being deployed. + - STATUS_READY: The fine-tuned model is ready to receive requests. + - STATUS_FAILED: The fine-tuned model failed. + - STATUS_DELETED: The fine-tuned model was deleted. + - STATUS_TEMPORARILY_OFFLINE: The fine-tuned model is temporarily unavailable. + - STATUS_PAUSED: The fine-tuned model is paused (Vanilla only). + - STATUS_QUEUED: The fine-tuned model is queued for training. + x-fern-sdk-group-name: + - finetuning + - finetuning + FinetunedModel: + type: object + properties: + id: + type: string + description: read-only. FinetunedModel ID. + readOnly: true + name: + type: string + description: FinetunedModel name (e.g. `foobar`). + creator_id: + type: string + description: read-only. User ID of the creator. + readOnly: true + organization_id: + type: string + description: read-only. Organization ID. + readOnly: true + settings: + $ref: "#/components/schemas/Settings" + description: FinetunedModel settings such as dataset, hyperparameters... + status: + $ref: "#/components/schemas/Status" + description: read-only. Current stage in the life-cycle of the fine-tuned model. + readOnly: true + created_at: + type: string + format: date-time + description: read-only. Creation timestamp. + readOnly: true + updated_at: + type: string + format: date-time + description: read-only. Latest update timestamp. + readOnly: true + completed_at: + type: string + format: date-time + description: read-only. Timestamp for the completed fine-tuning. + readOnly: true + last_used: + type: string + format: date-time + description: read-only. Timestamp for the latest request to this fine-tuned model. + readOnly: true + description: This resource represents a fine-tuned model. + required: + - name + - settings + x-fern-sdk-group-name: + - finetuning + - finetuning + ListFinetunedModelsResponse: + type: object + properties: + finetuned_models: + type: array + items: + type: object + $ref: "#/components/schemas/FinetunedModel" + description: List of fine-tuned models matching the request. + next_page_token: + type: string + description: |- + Pagination token to retrieve the next page of results. If the value is "", + it means no further results for the request. + total_size: + type: integer + format: int32 + description: Total count of results. + description: Response to a request to list fine-tuned models. + x-fern-sdk-group-name: + - finetuning + - finetuning + Error: + type: object + properties: + message: + type: string + description: A developer-facing error message. + description: Error is the response for any unsuccessful event. + x-fern-sdk-group-name: + - finetuning + - finetuning + CreateFinetunedModelResponse: + type: object + properties: + finetuned_model: + $ref: "#/components/schemas/FinetunedModel" + description: Information about the fine-tuned model. + description: Response to request to create a fine-tuned model. + x-fern-sdk-group-name: + - finetuning + - finetuning + GetFinetunedModelResponse: + type: object + properties: + finetuned_model: + $ref: "#/components/schemas/FinetunedModel" + description: Information about the fine-tuned model. + description: Response to a request to get a fine-tuned model. + x-fern-sdk-group-name: + - finetuning + - finetuning + DeleteFinetunedModelResponse: + type: object + description: Response to request to delete a fine-tuned model. + x-fern-sdk-group-name: + - finetuning + - finetuning + UpdateFinetunedModelResponse: + type: object + properties: + finetuned_model: + $ref: "#/components/schemas/FinetunedModel" + description: Information about the fine-tuned model. + description: Response to a request to update a fine-tuned model. + x-fern-sdk-group-name: + - finetuning + - finetuning + Event: + type: object + properties: + user_id: + type: string + description: ID of the user who initiated the event. Empty if initiated by the + system. + status: + $ref: "#/components/schemas/Status" + description: Status of the fine-tuned model. + created_at: + type: string + format: date-time + description: Timestamp when the event happened. + description: A change in status of a fine-tuned model. + x-fern-sdk-group-name: + - finetuning + - finetuning + ListEventsResponse: + type: object + properties: + events: + type: array + items: + type: object + $ref: "#/components/schemas/Event" + description: List of events for the fine-tuned model. + next_page_token: + type: string + description: |- + Pagination token to retrieve the next page of results. If the value is "", + it means no further results for the request. + total_size: + type: integer + format: int32 + description: Total count of results. + description: Response to a request to list events of a fine-tuned model. + x-fern-sdk-group-name: + - finetuning + - finetuning + TrainingStepMetrics: + type: object + properties: + created_at: + type: string + format: date-time + description: Creation timestamp. + step_number: + type: integer + format: int32 + description: Step number. + metrics: + type: object + additionalProperties: + type: number + format: double + description: Map of names and values for each evaluation metrics. + description: The evaluation metrics at a given step of the training of a + fine-tuned model. + x-fern-sdk-group-name: + - finetuning + - finetuning + ListTrainingStepMetricsResponse: + type: object + properties: + step_metrics: + type: array + items: + type: object + $ref: "#/components/schemas/TrainingStepMetrics" + description: The metrics for each step the evaluation was run on. + next_page_token: + type: string + description: |- + Pagination token to retrieve the next page of results. If the value is "", + it means no further results for the request. + description: Response to a request to list training-step metrics of a fine-tuned + model. + x-fern-sdk-group-name: + - finetuning + - finetuning + responses: + BadRequest: + description: | + This error is returned when the request is not well formed. This could be because: + - JSON is invalid + - The request is missing required fields + - The request contains an invalid combination of fields + content: + application/json: + schema: + type: object + properties: + data: + type: string + Unauthorized: + description: | + This error indicates that the operation attempted to be performed is not allowed. This could be because: + - The api token is invalid + - The user does not have the necessary permissions + content: + application/json: + schema: + type: object + properties: + data: + type: string + Forbidden: + description: | + This error indicates that the operation attempted to be performed is not allowed. This could be because: + - The api token is invalid + - The user does not have the necessary permissions + content: + application/json: + schema: + type: object + properties: + data: + type: string + NotFound: + description: | + This error is returned when a resource is not found. This could be because: + - The endpoint does not exist + - The resource does not exist eg model id, dataset id + content: + application/json: + schema: + type: object + properties: + data: + type: string + UnprocessableEntity: + description: | + This error is returned when the request is not well formed. This could be because: + - JSON is invalid + - The request is missing required fields + - The request contains an invalid combination of fields + content: + application/json: + schema: + type: object + properties: + data: + type: string + RateLimit: + description: Too many requests + content: + application/json: + schema: + type: object + properties: + data: + type: string + InvalidToken: + description: | + This error is returned when a request or response contains a deny-listed token. + content: + application/json: + schema: + type: object + properties: + data: + type: string + RequestCancelled: + description: | + This error is returned when a request is cancelled by the user. + content: + application/json: + schema: + type: object + properties: + data: + type: string + InternalServerError: + description: | + This error is returned when an uncategorised internal server error occurs. + content: + application/json: + schema: + type: object + properties: + data: + type: string + NotImplemented: + description: | + This error is returned when the requested feature is not implemented. + content: + application/json: + schema: + type: object + properties: + data: + type: string + ServiceUnavailable: + description: | + This error is returned when the service is unavailable. This could be due to: + - Too many users trying to access the service at the same time + content: + application/json: + schema: + type: object + properties: + data: + type: string + GatewayTimeout: + description: | + This error is returned when a request to the server times out. This could be due to: + - An internal services taking too long to respond + content: + application/json: + schema: + type: object + properties: + data: + type: string +x-readme: + disable-tag-sorting: true diff --git a/snippets/.gitattributes b/snippets/.gitattributes new file mode 100644 index 00000000..097f9f98 --- /dev/null +++ b/snippets/.gitattributes @@ -0,0 +1,9 @@ +# +# https://help.github.com/articles/dealing-with-line-endings/ +# +# Linux start script should use lf +/gradlew text eol=lf + +# These are Windows script files and should use crlf +*.bat text eol=crlf + diff --git a/snippets/.gitignore b/snippets/.gitignore new file mode 100644 index 00000000..1b6985c0 --- /dev/null +++ b/snippets/.gitignore @@ -0,0 +1,5 @@ +# Ignore Gradle project-specific cache directory +.gradle + +# Ignore Gradle build output directory +build diff --git a/snippets/curl/chat-post.sh b/snippets/curl/chat-post.sh new file mode 100644 index 00000000..19403f17 --- /dev/null +++ b/snippets/curl/chat-post.sh @@ -0,0 +1,13 @@ +curl --request POST \ + --url https://api.cohere.com/v1/chat \ + --header 'accept: application/json' \ + --header 'content-type: application/json' \ + --header "Authorization: bearer $CO_API_KEY" \ + --data '{ + "chat_history": [ + {"role": "USER", "message": "Who discovered gravity?"}, + {"role": "CHATBOT", "message": "The man who is widely credited with discovering gravity is Sir Isaac Newton"} + ], + "message": "What year was he born?", + "connectors": [{"id": "web-search"}] + }' \ No newline at end of file diff --git a/snippets/curl/classify-post.sh b/snippets/curl/classify-post.sh new file mode 100644 index 00000000..da0deee1 --- /dev/null +++ b/snippets/curl/classify-post.sh @@ -0,0 +1,20 @@ +curl --request POST \ + --url https://api.cohere.com/v1/classify \ + --header 'accept: application/json' \ + --header 'content-type: application/json' \ + --header "Authorization: bearer $CO_API_KEY" \ + --data '{ + "inputs": ["Confirm your email address", "hey i need u to send some $"], + "examples": [ + {"text": "Dermatologists don'\''t like her!","label": "Spam"}, + {"text": "'\''Hello, open to this?'\''","label": "Spam"}, + {"text": "I need help please wire me $1000 right now","label": "Spam"}, + {"text": "Nice to know you ;)","label": "Spam"}, + {"text": "Please help me?","label": "Spam"}, + {"text": "Your parcel will be delivered today","label": "Not spam"}, + {"text": "Review changes to our Terms and Conditions","label": "Not spam"}, + {"text": "Weekly sync notes","label": "Not spam"}, + {"text": "'\''Re: Follow up from today'\''s meeting'\''","label": "Not spam"}, + {"text": "Pre-read for tomorrow","label": "Not spam"} + ] + }' \ No newline at end of file diff --git a/snippets/curl/connector-create.sh b/snippets/curl/connector-create.sh new file mode 100644 index 00000000..58cf5e39 --- /dev/null +++ b/snippets/curl/connector-create.sh @@ -0,0 +1,9 @@ +curl --request POST \ + --url https://api.cohere.com/v1/connectors \ + --header 'accept: application/json' \ + --header 'content-type: application/json' \ + --header "Authorization: bearer $CO_API_KEY" \ + --data '{ + "name": "Example connector", + "url": "https://connector-example.com/search" + }' \ No newline at end of file diff --git a/snippets/curl/connector-delete.sh b/snippets/curl/connector-delete.sh new file mode 100644 index 00000000..d892120a --- /dev/null +++ b/snippets/curl/connector-delete.sh @@ -0,0 +1,4 @@ +curl --request DELETE \ + --url https://api.cohere.com/v1/connectors/id \ + --header 'accept: application/json' \ + --header "Authorization: bearer $CO_API_KEY" \ No newline at end of file diff --git a/snippets/curl/connector-get.sh b/snippets/curl/connector-get.sh new file mode 100644 index 00000000..2d926667 --- /dev/null +++ b/snippets/curl/connector-get.sh @@ -0,0 +1,4 @@ +curl --request GET \ + --url https://api.cohere.com/v1/connectors/id \ + --header 'accept: application/json' \ + --header "Authorization: bearer $CO_API_KEY" \ No newline at end of file diff --git a/snippets/curl/connector-patch.sh b/snippets/curl/connector-patch.sh new file mode 100644 index 00000000..fc3a926c --- /dev/null +++ b/snippets/curl/connector-patch.sh @@ -0,0 +1,9 @@ +curl --request PATCH \ + --url https://api.cohere.com/v1/connectors/id \ + --header 'accept: application/json' \ + --header 'content-type: application/json' \ + --header "Authorization: bearer $CO_API_KEY" \ + --data '{ + "name": "new name", + "url": "https://example.com/search" + }' \ No newline at end of file diff --git a/snippets/curl/connectors-id-oauth-authorize-post.sh b/snippets/curl/connectors-id-oauth-authorize-post.sh new file mode 100644 index 00000000..2bed22d7 --- /dev/null +++ b/snippets/curl/connectors-id-oauth-authorize-post.sh @@ -0,0 +1,4 @@ +curl --request POST \ + --url https://api.cohere.com/v1/connectors/id/oauth/authorize \ + --header 'accept: application/json' \ + --header "Authorization: bearer $CO_API_KEY" \ No newline at end of file diff --git a/snippets/curl/connectors-list.sh b/snippets/curl/connectors-list.sh new file mode 100644 index 00000000..f19e23bf --- /dev/null +++ b/snippets/curl/connectors-list.sh @@ -0,0 +1,4 @@ +curl --request GET \ + --url https://api.cohere.com/v1/connectors \ + --header 'accept: application/json' \ + --header "Authorization: bearer $CO_API_KEY" \ No newline at end of file diff --git a/snippets/curl/dataset-delete.sh b/snippets/curl/dataset-delete.sh new file mode 100644 index 00000000..5a3d2151 --- /dev/null +++ b/snippets/curl/dataset-delete.sh @@ -0,0 +1,5 @@ +curl --request DELETE \ + --url https://api.cohere.com/v1/datasets/id \ + --header 'accept: application/json' \ + --header 'content-type: application/json' \ + --header "Authorization: bearer $CO_API_KEY" \ No newline at end of file diff --git a/snippets/curl/dataset-get.sh b/snippets/curl/dataset-get.sh new file mode 100644 index 00000000..519e9bc4 --- /dev/null +++ b/snippets/curl/dataset-get.sh @@ -0,0 +1,4 @@ +curl --request GET \ + --url https://api.cohere.com/v1/datasets \ + --header 'accept: application/json' \ + --header "Authorization: bearer $CO_API_KEY" \ No newline at end of file diff --git a/snippets/curl/dataset-post.sh b/snippets/curl/dataset-post.sh new file mode 100644 index 00000000..a30eb055 --- /dev/null +++ b/snippets/curl/dataset-post.sh @@ -0,0 +1,5 @@ +curl --request POST \ + --url "https://api.cohere.com/v1/datasets?name=my-dataset&type=generative-finetune-input" \ + --header 'Content-Type: multipart/form-data' \ + --header "Authorization: Bearer $CO_API_KEY" \ + --form file=@./path/to/file.jsonl \ No newline at end of file diff --git a/snippets/curl/dataset-usage-get.sh b/snippets/curl/dataset-usage-get.sh new file mode 100644 index 00000000..35c01b01 --- /dev/null +++ b/snippets/curl/dataset-usage-get.sh @@ -0,0 +1,4 @@ +curl --request GET \ + --url https://api.cohere.com/v1/datasets/usage \ + --header 'accept: application/json' \ + --header "Authorization: bearer $CO_API_KEY" \ No newline at end of file diff --git a/snippets/curl/detokenize-post.sh b/snippets/curl/detokenize-post.sh new file mode 100644 index 00000000..b2a0a4a1 --- /dev/null +++ b/snippets/curl/detokenize-post.sh @@ -0,0 +1,9 @@ +curl --request POST \ + --url https://api.cohere.com/v1/detokenize \ + --header 'accept: application/json' \ + --header 'content-type: application/json' \ + --header "Authorization: bearer $CO_API_KEY" \ + --data '{ + "model": "command", + "tokens": [8466, 5169, 2594, 8, 2792, 43] + }' \ No newline at end of file diff --git a/snippets/curl/embed-jobs-cancel.sh b/snippets/curl/embed-jobs-cancel.sh new file mode 100644 index 00000000..0e629837 --- /dev/null +++ b/snippets/curl/embed-jobs-cancel.sh @@ -0,0 +1,5 @@ +curl --request POST \ + --url https://api.cohere.com/v1/embed-jobs/id/cancel \ + --header 'accept: application/json' \ + --header 'content-type: application/json' \ + --header "Authorization: bearer $CO_API_KEY" \ No newline at end of file diff --git a/snippets/curl/embed-jobs-get.sh b/snippets/curl/embed-jobs-get.sh new file mode 100644 index 00000000..eb4be9c9 --- /dev/null +++ b/snippets/curl/embed-jobs-get.sh @@ -0,0 +1,4 @@ +curl --request GET \ + --url https://api.cohere.com/v1/embed-jobs \ + --header 'accept: application/json' \ + --header "Authorization: bearer $CO_API_KEY" \ No newline at end of file diff --git a/snippets/curl/embed-jobs-post.sh b/snippets/curl/embed-jobs-post.sh new file mode 100644 index 00000000..31269c5a --- /dev/null +++ b/snippets/curl/embed-jobs-post.sh @@ -0,0 +1,9 @@ +curl --request POST \ + --url https://api.cohere.com/v1/embed-jobs \ + --header 'accept: application/json' \ + --header 'content-type: application/json' \ + --header "Authorization: bearer $CO_API_KEY" \ + --data '{ + "model": "embed-english-v3.0", + "dataset_id": "my-dataset" + }' \ No newline at end of file diff --git a/snippets/curl/embed-post.sh b/snippets/curl/embed-post.sh new file mode 100644 index 00000000..35e831fc --- /dev/null +++ b/snippets/curl/embed-post.sh @@ -0,0 +1,10 @@ +curl --request POST \ + --url https://api.cohere.com/v1/embed \ + --header 'accept: application/json' \ + --header 'content-type: application/json' \ + --header "Authorization: bearer $CO_API_KEY" \ + --data '{ + "model": "embed-english-v3.0", + "texts": ["hello", "goodbye"], + "input_type": "classification" + }' \ No newline at end of file diff --git a/snippets/curl/emebed-jobs-get.sh b/snippets/curl/emebed-jobs-get.sh new file mode 100644 index 00000000..87159911 --- /dev/null +++ b/snippets/curl/emebed-jobs-get.sh @@ -0,0 +1,4 @@ +curl --request GET \ + --url https://api.cohere.com/v1/embed-jobs/id \ + --header 'accept: application/json' \ + --header "Authorization: bearer $CO_API_KEY" \ No newline at end of file diff --git a/snippets/curl/finetuning/create-finetuned-model.sh b/snippets/curl/finetuning/create-finetuned-model.sh new file mode 100644 index 00000000..424cc7bb --- /dev/null +++ b/snippets/curl/finetuning/create-finetuned-model.sh @@ -0,0 +1,14 @@ +curl --request POST \ + --url https://api.cohere.com/v1/finetuning/finetuned-models \ + --header 'accept: application/json' \ + --header 'content-type: application/json' \ + --header "Authorization: bearer $CO_API_KEY" \ + --data '{ + "name": "test-finetuned-model", + "settings": { + "base_model": { + "base_type": "BASE_TYPE_GENERATIVE", + }, + "dataset_id": "test-dataset-id" + } + }' diff --git a/snippets/curl/finetuning/delete-finetuned-model.sh b/snippets/curl/finetuning/delete-finetuned-model.sh new file mode 100644 index 00000000..2c4cafda --- /dev/null +++ b/snippets/curl/finetuning/delete-finetuned-model.sh @@ -0,0 +1,4 @@ +curl --request DELETE \ + --url https://api.cohere.com/v1/finetuning/finetuned-models/test-id \ + --header 'accept: application/json' \ + --header "Authorization: bearer $CO_API_KEY" diff --git a/snippets/curl/finetuning/get-finetuned-model.sh b/snippets/curl/finetuning/get-finetuned-model.sh new file mode 100644 index 00000000..0a17fda8 --- /dev/null +++ b/snippets/curl/finetuning/get-finetuned-model.sh @@ -0,0 +1,4 @@ +curl --request GET \ + --url https://api.cohere.com/v1/finetuning/finetuned-models/test-id \ + --header 'accept: application/json' \ + --header "Authorization: bearer $CO_API_KEY" diff --git a/snippets/curl/finetuning/list-events.sh b/snippets/curl/finetuning/list-events.sh new file mode 100644 index 00000000..a8fb1e7e --- /dev/null +++ b/snippets/curl/finetuning/list-events.sh @@ -0,0 +1,4 @@ +curl --request GET \ + --url https://api.cohere.com/v1/finetuning/finetuned-models/test-id/events \ + --header 'accept: application/json' \ + --header "Authorization: bearer $CO_API_KEY" diff --git a/snippets/curl/finetuning/list-finetuned-models.sh b/snippets/curl/finetuning/list-finetuned-models.sh new file mode 100644 index 00000000..ba05d53a --- /dev/null +++ b/snippets/curl/finetuning/list-finetuned-models.sh @@ -0,0 +1,4 @@ +curl --request GET \ + --url https://api.cohere.com/v1/finetuning/finetuned-models \ + --header 'accept: application/json' \ + --header "Authorization: bearer $CO_API_KEY" diff --git a/snippets/curl/finetuning/list-training-step-metrics.sh b/snippets/curl/finetuning/list-training-step-metrics.sh new file mode 100644 index 00000000..2c3758e1 --- /dev/null +++ b/snippets/curl/finetuning/list-training-step-metrics.sh @@ -0,0 +1,4 @@ +curl --request GET \ + --url https://api.cohere.com/v1/finetuning/finetuned-models/test-id/training-step-metrics \ + --header 'accept: application/json' \ + --header "Authorization: bearer $CO_API_KEY" diff --git a/snippets/curl/finetuning/update-finetuned-model.sh b/snippets/curl/finetuning/update-finetuned-model.sh new file mode 100644 index 00000000..e3e52b25 --- /dev/null +++ b/snippets/curl/finetuning/update-finetuned-model.sh @@ -0,0 +1,6 @@ +curl --request PATCH \ + --url https://api.cohere.com/v1/finetuning/finetuned-models/test-id \ + --header 'accept: application/json' \ + --header 'content-type: application/json' \ + --header "Authorization: bearer $CO_API_KEY" \ + --data '{ "name": "new name" }' diff --git a/snippets/curl/generate-post.sh b/snippets/curl/generate-post.sh new file mode 100644 index 00000000..084488de --- /dev/null +++ b/snippets/curl/generate-post.sh @@ -0,0 +1,8 @@ +curl --request POST \ + --url https://api.cohere.com/v1/generate \ + --header 'accept: application/json' \ + --header 'content-type: application/json' \ + --header "Authorization: bearer $CO_API_KEY" \ + --data '{ + "prompt": "Please explain to me how LLMs work" + }' \ No newline at end of file diff --git a/snippets/curl/models-list-get.sh b/snippets/curl/models-list-get.sh new file mode 100644 index 00000000..5707a2f7 --- /dev/null +++ b/snippets/curl/models-list-get.sh @@ -0,0 +1,4 @@ +curl --request GET \ + --url https://api.cohere.com/v1/models \ + --header 'accept: application/json' \ + --header "Authorization: bearer $CO_API_KEY" \ No newline at end of file diff --git a/snippets/curl/rerank-post.sh b/snippets/curl/rerank-post.sh new file mode 100644 index 00000000..11dead44 --- /dev/null +++ b/snippets/curl/rerank-post.sh @@ -0,0 +1,15 @@ +curl --request POST \ + --url https://api.cohere.com/v1/rerank \ + --header 'accept: application/json' \ + --header 'content-type: application/json' \ + --header "Authorization: bearer $CO_API_KEY" \ + --data '{ + "model": "rerank-english-v3.0", + "query": "What is the capital of the United States?", + "top_n": 3, + "documents": ["Carson City is the capital city of the American state of Nevada.", + "The Commonwealth of the Northern Mariana Islands is a group of islands in the Pacific Ocean. Its capital is Saipan.", + "Washington, D.C. (also known as simply Washington or D.C., and officially as the District of Columbia) is the capital of the United States. It is a federal district.", + "Capitalization or capitalisation in English grammar is the use of a capital letter at the start of a word. English usage varies from capitalization in other languages.", + "Capital punishment (the death penalty) has existed in the United States since beforethe United States was a country. As of 2017, capital punishment is legal in 30 of the 50 states."] + }' \ No newline at end of file diff --git a/snippets/curl/summarize-post.sh b/snippets/curl/summarize-post.sh new file mode 100644 index 00000000..4256e22c --- /dev/null +++ b/snippets/curl/summarize-post.sh @@ -0,0 +1,8 @@ +curl --request POST \ + --url https://api.cohere.com/v1/summarize \ + --header 'accept: application/json' \ + --header 'content-type: application/json' \ + --header "Authorization: bearer $CO_API_KEY" \ + --data '{ + "text": "Ice cream is a sweetened frozen food typically eaten as a snack or dessert. It may be made from milk or cream and is flavoured with a sweetener, either sugar or an alternative, and a spice, such as cocoa or vanilla, or with fruit such as strawberries or peaches. It can also be made by whisking a flavored cream base and liquid nitrogen together. Food coloring is sometimes added, in addition to stabilizers. The mixture is cooled below the freezing point of water and stirred to incorporate air spaces and to prevent detectable ice crystals from forming. The result is a smooth, semi-solid foam that is solid at very low temperatures (below 2 °C or 35 °F). It becomes more malleable as its temperature increases.\n\nThe meaning of the name \"ice cream\" varies from one country to another. In some countries, such as the United States, \"ice cream\" applies only to a specific variety, and most governments regulate the commercial use of the various terms according to the relative quantities of the main ingredients, notably the amount of cream. Products that do not meet the criteria to be called ice cream are sometimes labelled \"frozen dairy dessert\" instead. In other countries, such as Italy and Argentina, one word is used for all variants. Analogues made from dairy alternatives, such as goat'\''s or sheep'\''s milk, or milk substitutes (e.g., soy, cashew, coconut, almond milk or tofu), are available for those who are lactose intolerant, allergic to dairy protein or vegan." + }' \ No newline at end of file diff --git a/snippets/curl/tokenize-post.sh b/snippets/curl/tokenize-post.sh new file mode 100644 index 00000000..35e9e851 --- /dev/null +++ b/snippets/curl/tokenize-post.sh @@ -0,0 +1,9 @@ +curl --request POST \ + --url https://api.cohere.com/v1/tokenize \ + --header 'accept: application/json' \ + --header 'content-type: application/json' \ + --header "Authorization: bearer $CO_API_KEY" \ + --data '{ + "model": "command", + "text": "tokenize me! :D" + }' \ No newline at end of file diff --git a/snippets/go/chat-post/default/main.go b/snippets/go/chat-post/default/main.go new file mode 100644 index 00000000..167e1c79 --- /dev/null +++ b/snippets/go/chat-post/default/main.go @@ -0,0 +1,42 @@ +package main + +import ( + "context" + "log" + + cohere "github.com/cohere-ai/cohere-go/v2" + client "github.com/cohere-ai/cohere-go/v2/client" +) + +func main() { + co := client.NewClient(client.WithToken("<>")) + + resp, err := co.Chat( + context.TODO(), + &cohere.ChatRequest{ + ChatHistory: []*cohere.Message{ + { + Role: "USER", + User: &cohere.ChatMessage{ + Message: "Who discovered gravity?", + }, + }, + { + Role: "CHATBOT", + Chatbot: &cohere.ChatMessage{ + Message: "The man who is widely credited with discovering gravity is Sir Isaac Newton", + }, + }}, + Message: "What year was he born?", + Connectors: []*cohere.ChatConnector{ + {Id: "web-search"}, + }, + }, + ) + + if err != nil { + log.Fatal(err) + } + + log.Printf("%+v", resp) +} diff --git a/snippets/go/chat-post/documents/main.go b/snippets/go/chat-post/documents/main.go new file mode 100644 index 00000000..a2151cd3 --- /dev/null +++ b/snippets/go/chat-post/documents/main.go @@ -0,0 +1,61 @@ +package main + +import ( + "context" + "errors" + "io" + "log" + + cohere "github.com/cohere-ai/cohere-go/v2" + client "github.com/cohere-ai/cohere-go/v2/client" +) + +func main() { + co := client.NewClient(client.WithToken("<>")) + + resp, err := co.ChatStream( + context.TODO(), + &cohere.ChatStreamRequest{ + ChatHistory: []*cohere.Message{ + { + Role: "USER", + User: &cohere.ChatMessage{ + Message: "Who discovered gravity?", + }, + }, + { + Role: "CHATBOT", + Chatbot: &cohere.ChatMessage{ + Message: "The man who is widely credited with discovering gravity is Sir Isaac Newton", + }, + }}, + Message: "What year was he born?", + Connectors: []*cohere.ChatConnector{ + {Id: "web-search"}, + }, + }, + ) + + if err != nil { + log.Fatal(err) + } + + // Make sure to close the stream when you're done reading. + // This is easily handled with defer. + defer resp.Close() + + for { + message, err := resp.Recv() + + if errors.Is(err, io.EOF) { + // An io.EOF error means the server is done sending messages + // and should be treated as a success. + break + } + + if message.TextGeneration != nil { + log.Printf("%+v", resp) + } + } + +} diff --git a/snippets/go/chat-post/stream/main.go b/snippets/go/chat-post/stream/main.go new file mode 100644 index 00000000..a2151cd3 --- /dev/null +++ b/snippets/go/chat-post/stream/main.go @@ -0,0 +1,61 @@ +package main + +import ( + "context" + "errors" + "io" + "log" + + cohere "github.com/cohere-ai/cohere-go/v2" + client "github.com/cohere-ai/cohere-go/v2/client" +) + +func main() { + co := client.NewClient(client.WithToken("<>")) + + resp, err := co.ChatStream( + context.TODO(), + &cohere.ChatStreamRequest{ + ChatHistory: []*cohere.Message{ + { + Role: "USER", + User: &cohere.ChatMessage{ + Message: "Who discovered gravity?", + }, + }, + { + Role: "CHATBOT", + Chatbot: &cohere.ChatMessage{ + Message: "The man who is widely credited with discovering gravity is Sir Isaac Newton", + }, + }}, + Message: "What year was he born?", + Connectors: []*cohere.ChatConnector{ + {Id: "web-search"}, + }, + }, + ) + + if err != nil { + log.Fatal(err) + } + + // Make sure to close the stream when you're done reading. + // This is easily handled with defer. + defer resp.Close() + + for { + message, err := resp.Recv() + + if errors.Is(err, io.EOF) { + // An io.EOF error means the server is done sending messages + // and should be treated as a success. + break + } + + if message.TextGeneration != nil { + log.Printf("%+v", resp) + } + } + +} diff --git a/snippets/go/chat-post/tools/main.go b/snippets/go/chat-post/tools/main.go new file mode 100644 index 00000000..7885f14d --- /dev/null +++ b/snippets/go/chat-post/tools/main.go @@ -0,0 +1,50 @@ +package main + +import ( + "context" + "log" + + cohere "github.com/cohere-ai/cohere-go/v2" + client "github.com/cohere-ai/cohere-go/v2/client" +) + +func main() { + co := client.NewClient(client.WithToken("<>")) + + resp, err := co.Chat( + context.TODO(), + &cohere.ChatRequest{ + Message: "Can you provide a sales summary for 29th September 2023, and also give me some details about the products in the 'Electronics' category, for example their prices and stock levels?", + Tools: []*cohere.Tool{ + { + Name: "query_daily_sales_report", + Description: "Connects to a database to retrieve overall sales volumes and sales information for a given day.", + ParameterDefinitions: map[string]*cohere.ToolParameterDefinitionsValue{ + "day": { + Description: cohere.String("Retrieves sales data for this day, formatted as YYYY-MM-DD."), + Type: "str", + Required: cohere.Bool(true), + }, + }, + }, + { + Name: "query_product_catalog", + Description: "Connects to a a product catalog with information about all the products being sold, including categories, prices, and stock levels.", + ParameterDefinitions: map[string]*cohere.ToolParameterDefinitionsValue{ + "category": { + Description: cohere.String("Retrieves product information data for all products in this category."), + Type: "str", + Required: cohere.Bool(true), + }, + }, + }, + }, + }, + ) + + if err != nil { + log.Fatal(err) + } + + log.Printf("%+v", resp) +} diff --git a/snippets/go/classify-post/main.go b/snippets/go/classify-post/main.go new file mode 100644 index 00000000..5ac4314f --- /dev/null +++ b/snippets/go/classify-post/main.go @@ -0,0 +1,44 @@ +package main + +import ( + "context" + "log" + + cohere "github.com/cohere-ai/cohere-go/v2" + client "github.com/cohere-ai/cohere-go/v2/client" +) + +func main() { + co := client.NewClient(client.WithToken("<>")) + + resp, err := co.Classify( + context.TODO(), + &cohere.ClassifyRequest{ + Examples: []*cohere.ClassifyExample{ + { + Text: cohere.String("orange"), + Label: cohere.String("fruit"), + }, + { + Text: cohere.String("pear"), + Label: cohere.String("fruit"), + }, + { + Text: cohere.String("lettuce"), + Label: cohere.String("vegetable"), + }, + { + Text: cohere.String("cauliflower"), + Label: cohere.String("vegetable"), + }, + }, + Inputs: []string{"peach"}, + }, + ) + + if err != nil { + log.Fatal(err) + } + + log.Printf("%+v", resp) +} diff --git a/snippets/go/connector-create/main.go b/snippets/go/connector-create/main.go new file mode 100644 index 00000000..7c233eed --- /dev/null +++ b/snippets/go/connector-create/main.go @@ -0,0 +1,31 @@ +package main + +import ( + "context" + "log" + + cohere "github.com/cohere-ai/cohere-go/v2" + client "github.com/cohere-ai/cohere-go/v2/client" +) + +func main() { + co := client.NewClient(client.WithToken("<>")) + + resp, err := co.Connectors.Create( + context.TODO(), + &cohere.CreateConnectorRequest{ + Name: "Example connector", + Url: "https://you-connector-url", + ServiceAuth: &cohere.CreateConnectorServiceAuth{ + Token: "dummy-connector-token", + Type: "bearer", + }, + }, + ) + + if err != nil { + log.Fatal(err) + } + + log.Printf("%+v", resp) +} diff --git a/snippets/go/connector-delete/main.go b/snippets/go/connector-delete/main.go new file mode 100644 index 00000000..ca2625b1 --- /dev/null +++ b/snippets/go/connector-delete/main.go @@ -0,0 +1,20 @@ +package main + +import ( + "context" + "log" + + client "github.com/cohere-ai/cohere-go/v2/client" +) + +func main() { + co := client.NewClient(client.WithToken("<>")) + + resp, err := co.Connectors.Delete(context.TODO(), "connector_id") + + if err != nil { + log.Fatal(err) + } + + log.Printf("%+v", resp) +} diff --git a/snippets/go/connector-get/main.go b/snippets/go/connector-get/main.go new file mode 100644 index 00000000..c1626cf2 --- /dev/null +++ b/snippets/go/connector-get/main.go @@ -0,0 +1,20 @@ +package main + +import ( + "context" + "log" + + client "github.com/cohere-ai/cohere-go/v2/client" +) + +func main() { + co := client.NewClient(client.WithToken("<>")) + + resp, err := co.Connectors.Get(context.TODO(), "connector_id") + + if err != nil { + log.Fatal(err) + } + + log.Printf("%+v", resp) +} diff --git a/snippets/go/connector-patch/main.go b/snippets/go/connector-patch/main.go new file mode 100644 index 00000000..ab156dab --- /dev/null +++ b/snippets/go/connector-patch/main.go @@ -0,0 +1,27 @@ +package main + +import ( + "context" + "log" + + cohere "github.com/cohere-ai/cohere-go/v2" + client "github.com/cohere-ai/cohere-go/v2/client" +) + +func main() { + co := client.NewClient(client.WithToken("<>")) + + resp, err := co.Connectors.Update( + context.TODO(), + "connector_id", + &cohere.UpdateConnectorRequest{ + Name: cohere.String("Example connector renamed"), + }, + ) + + if err != nil { + log.Fatal(err) + } + + log.Printf("%+v", resp) +} diff --git a/snippets/go/connectors-id-oauth-authorize-post/main.go b/snippets/go/connectors-id-oauth-authorize-post/main.go new file mode 100644 index 00000000..fb4da16e --- /dev/null +++ b/snippets/go/connectors-id-oauth-authorize-post/main.go @@ -0,0 +1,27 @@ +package main + +import ( + "context" + "log" + + cohere "github.com/cohere-ai/cohere-go/v2" + client "github.com/cohere-ai/cohere-go/v2/client" +) + +func main() { + co := client.NewClient(client.WithToken("<>")) + + resp, err := co.Connectors.OAuthAuthorize( + context.TODO(), + "connector_id", + &cohere.ConnectorsOAuthAuthorizeRequest{ + AfterTokenRedirect: cohere.String("https://test.com"), + }, + ) + + if err != nil { + log.Fatal(err) + } + + log.Printf("%+v", resp) +} diff --git a/snippets/go/connectors-list/main.go b/snippets/go/connectors-list/main.go new file mode 100644 index 00000000..5ea83ad1 --- /dev/null +++ b/snippets/go/connectors-list/main.go @@ -0,0 +1,23 @@ +package main + +import ( + "context" + "log" + + cohere "github.com/cohere-ai/cohere-go/v2" + client "github.com/cohere-ai/cohere-go/v2/client" +) + +func main() { + co := client.NewClient(client.WithToken("<>")) + + resp, err := co.Connectors.List( + context.TODO(), + &cohere.ConnectorsListRequest{}) + + if err != nil { + log.Fatal(err) + } + + log.Printf("%+v", resp) +} diff --git a/snippets/go/dataset-delete/main.go b/snippets/go/dataset-delete/main.go new file mode 100644 index 00000000..00ea89eb --- /dev/null +++ b/snippets/go/dataset-delete/main.go @@ -0,0 +1,19 @@ +package main + +import ( + "context" + "log" + + client "github.com/cohere-ai/cohere-go/v2/client" +) + +func main() { + co := client.NewClient(client.WithToken("<>")) + + _, err := co.Datasets.Delete(context.TODO(), "dataset_id") + + if err != nil { + log.Fatal(err) + } + +} diff --git a/snippets/go/dataset-get/main.go b/snippets/go/dataset-get/main.go new file mode 100644 index 00000000..325c8ec8 --- /dev/null +++ b/snippets/go/dataset-get/main.go @@ -0,0 +1,20 @@ +package main + +import ( + "context" + "log" + + client "github.com/cohere-ai/cohere-go/v2/client" +) + +func main() { + co := client.NewClient(client.WithToken("<>")) + + resp, err := co.Datasets.Get(context.TODO(), "dataset_id") + + if err != nil { + log.Fatal(err) + } + + log.Printf("%+v", resp) +} diff --git a/snippets/go/dataset-post/main.go b/snippets/go/dataset-post/main.go new file mode 100644 index 00000000..e6d0b2da --- /dev/null +++ b/snippets/go/dataset-post/main.go @@ -0,0 +1,40 @@ +package main + +import ( + "context" + "io" + "log" + "strings" + + cohere "github.com/cohere-ai/cohere-go/v2" + client "github.com/cohere-ai/cohere-go/v2/client" +) + +type MyReader struct { + io.Reader + name string +} + +func (m *MyReader) Name() string { + return m.name +} + +func main() { + co := client.NewClient(client.WithToken("<>")) + + resp, err := co.Datasets.Create( + context.TODO(), + &MyReader{Reader: strings.NewReader(`{"text": "The quick brown fox jumps over the lazy dog"}`), name: "test.jsonl"}, + &MyReader{Reader: strings.NewReader(""), name: "a.jsonl"}, + &cohere.DatasetsCreateRequest{ + Name: "prompt-completion-dataset", + Type: cohere.DatasetTypeEmbedResult, + }, + ) + + if err != nil { + log.Fatal(err) + } + + log.Printf("%+v", resp) +} diff --git a/snippets/go/dataset-usage-get/main.go b/snippets/go/dataset-usage-get/main.go new file mode 100644 index 00000000..30d6c4ef --- /dev/null +++ b/snippets/go/dataset-usage-get/main.go @@ -0,0 +1,20 @@ +package main + +import ( + "context" + "log" + + client "github.com/cohere-ai/cohere-go/v2/client" +) + +func main() { + co := client.NewClient(client.WithToken("<>")) + + resp, err := co.Datasets.GetUsage(context.TODO()) + + if err != nil { + log.Fatal(err) + } + + log.Printf("%+v", resp) +} diff --git a/snippets/go/detokenize-post/main.go b/snippets/go/detokenize-post/main.go new file mode 100644 index 00000000..940f2013 --- /dev/null +++ b/snippets/go/detokenize-post/main.go @@ -0,0 +1,26 @@ +package main + +import ( + "context" + "log" + + cohere "github.com/cohere-ai/cohere-go/v2" + client "github.com/cohere-ai/cohere-go/v2/client" +) + +func main() { + co := client.NewClient(client.WithToken("<>")) + + resp, err := co.Detokenize( + context.TODO(), + &cohere.DetokenizeRequest{ + Tokens: []int{10002, 1706, 1722, 5169, 4328}, + }, + ) + + if err != nil { + log.Fatal(err) + } + + log.Printf("%+v", resp) +} diff --git a/snippets/go/embed-jobs-cancel/main.go b/snippets/go/embed-jobs-cancel/main.go new file mode 100644 index 00000000..265465a4 --- /dev/null +++ b/snippets/go/embed-jobs-cancel/main.go @@ -0,0 +1,19 @@ +package main + +import ( + "context" + "log" + + client "github.com/cohere-ai/cohere-go/v2/client" +) + +func main() { + co := client.NewClient(client.WithToken("<>")) + + err := co.EmbedJobs.Cancel(context.TODO(), "embed_job_id") + + if err != nil { + log.Fatal(err) + } + +} diff --git a/snippets/go/embed-jobs-get/main.go b/snippets/go/embed-jobs-get/main.go new file mode 100644 index 00000000..fbcf230a --- /dev/null +++ b/snippets/go/embed-jobs-get/main.go @@ -0,0 +1,20 @@ +package main + +import ( + "context" + "log" + + client "github.com/cohere-ai/cohere-go/v2/client" +) + +func main() { + co := client.NewClient(client.WithToken("<>")) + + resp, err := co.EmbedJobs.Get(context.TODO(), "embed_job_id") + + if err != nil { + log.Fatal(err) + } + + log.Printf("%+v", resp) +} diff --git a/snippets/go/embed-jobs-post/main.go b/snippets/go/embed-jobs-post/main.go new file mode 100644 index 00000000..a2dd3e14 --- /dev/null +++ b/snippets/go/embed-jobs-post/main.go @@ -0,0 +1,27 @@ +package main + +import ( + "context" + "log" + + cohere "github.com/cohere-ai/cohere-go/v2" + client "github.com/cohere-ai/cohere-go/v2/client" +) + +func main() { + co := client.NewClient(client.WithToken("<>")) + + resp, err := co.EmbedJobs.Create( + context.TODO(), + &cohere.CreateEmbedJobRequest{ + DatasetId: "dataset_id", + InputType: cohere.EmbedInputTypeSearchDocument, + }, + ) + + if err != nil { + log.Fatal(err) + } + + log.Printf("%+v", resp) +} diff --git a/snippets/go/embed-post/main.go b/snippets/go/embed-post/main.go new file mode 100644 index 00000000..415abb43 --- /dev/null +++ b/snippets/go/embed-post/main.go @@ -0,0 +1,28 @@ +package main + +import ( + "context" + "log" + + cohere "github.com/cohere-ai/cohere-go/v2" + client "github.com/cohere-ai/cohere-go/v2/client" +) + +func main() { + co := client.NewClient(client.WithToken("<>")) + + resp, err := co.Embed( + context.TODO(), + &cohere.EmbedRequest{ + Texts: []string{"hello", "goodbye"}, + Model: cohere.String("embed-english-v3.0"), + InputType: cohere.EmbedInputTypeSearchDocument.Ptr(), + }, + ) + + if err != nil { + log.Fatal(err) + } + + log.Printf("%+v", resp) +} diff --git a/snippets/go/emebed-jobs-get/main.go b/snippets/go/emebed-jobs-get/main.go new file mode 100644 index 00000000..da6f8e9a --- /dev/null +++ b/snippets/go/emebed-jobs-get/main.go @@ -0,0 +1,20 @@ +package main + +import ( + "context" + "log" + + client "github.com/cohere-ai/cohere-go/v2/client" +) + +func main() { + co := client.NewClient(client.WithToken("<>")) + + resp, err := co.EmbedJobs.List(context.TODO()) + + if err != nil { + log.Fatal(err) + } + + log.Printf("%+v", resp) +} diff --git a/snippets/go/finetuning/create-finetuned-model/main.go b/snippets/go/finetuning/create-finetuned-model/main.go new file mode 100644 index 00000000..aee7b102 --- /dev/null +++ b/snippets/go/finetuning/create-finetuned-model/main.go @@ -0,0 +1,31 @@ +package main + +import ( + "context" + "log" + + "github.com/cohere-ai/cohere-go/v2/client" + "github.com/cohere-ai/cohere-go/v2/finetuning" +) + +func main() { + co := client.NewClient(client.WithToken("<>")) + + resp, err := co.Finetuning.CreateFinetunedModel( + context.TODO(), + &finetuning.FinetunedModel{ + Name: "test-finetuned-model", + Settings: &finetuning.Settings{ + DatasetId: "my-dataset-id", + BaseModel: &finetuning.BaseModel{ + BaseType: finetuning.BaseTypeBaseTypeGenerative, + }, + }, + }, + ) + if err != nil { + log.Fatal(err) + } + + log.Printf("%+v", resp.FinetunedModel) +} diff --git a/snippets/go/finetuning/delete-finetuned-model/main.go b/snippets/go/finetuning/delete-finetuned-model/main.go new file mode 100644 index 00000000..134fda50 --- /dev/null +++ b/snippets/go/finetuning/delete-finetuned-model/main.go @@ -0,0 +1,17 @@ +package main + +import ( + "context" + "log" + + "github.com/cohere-ai/cohere-go/v2/client" +) + +func main() { + co := client.NewClient(client.WithToken("<>")) + + _, err := co.Finetuning.DeleteFinetunedModel(context.TODO(), "test-id") + if err != nil { + log.Fatal(err) + } +} diff --git a/snippets/go/finetuning/get-finetuned-model/main.go b/snippets/go/finetuning/get-finetuned-model/main.go new file mode 100644 index 00000000..985e331a --- /dev/null +++ b/snippets/go/finetuning/get-finetuned-model/main.go @@ -0,0 +1,19 @@ +package main + +import ( + "context" + "log" + + "github.com/cohere-ai/cohere-go/v2/client" +) + +func main() { + co := client.NewClient(client.WithToken("<>")) + + resp, err := co.Finetuning.GetFinetunedModel(context.TODO(), "test-id") + if err != nil { + log.Fatal(err) + } + + log.Printf("%+v", resp.FinetunedModel) +} diff --git a/snippets/go/finetuning/list-events/main.go b/snippets/go/finetuning/list-events/main.go new file mode 100644 index 00000000..7d765b5c --- /dev/null +++ b/snippets/go/finetuning/list-events/main.go @@ -0,0 +1,23 @@ +package main + +import ( + "context" + "log" + + "github.com/cohere-ai/cohere-go/v2/client" +) + +func main() { + co := client.NewClient(client.WithToken("<>")) + + resp, err := co.Finetuning.ListEvents( + context.TODO(), + "test-finetuned-model-id", + nil, + ) + if err != nil { + log.Fatal(err) + } + + log.Printf("%+v", resp.Events) +} diff --git a/snippets/go/finetuning/list-finetuned-models/main.go b/snippets/go/finetuning/list-finetuned-models/main.go new file mode 100644 index 00000000..0a909f36 --- /dev/null +++ b/snippets/go/finetuning/list-finetuned-models/main.go @@ -0,0 +1,19 @@ +package main + +import ( + "context" + "log" + + "github.com/cohere-ai/cohere-go/v2/client" +) + +func main() { + co := client.NewClient(client.WithToken("<>")) + + resp, err := co.Finetuning.ListFinetunedModels(context.TODO(), nil) + if err != nil { + log.Fatal(err) + } + + log.Printf("%+v", resp.FinetunedModels) +} diff --git a/snippets/go/finetuning/list-training-step-metrics/main.go b/snippets/go/finetuning/list-training-step-metrics/main.go new file mode 100644 index 00000000..709eabc9 --- /dev/null +++ b/snippets/go/finetuning/list-training-step-metrics/main.go @@ -0,0 +1,23 @@ +package main + +import ( + "context" + "log" + + "github.com/cohere-ai/cohere-go/v2/client" +) + +func main() { + co := client.NewClient(client.WithToken("<>")) + + resp, err := co.Finetuning.ListTrainingStepMetrics( + context.TODO(), + "test-finetuned-model-id", + nil, + ) + if err != nil { + log.Fatal(err) + } + + log.Printf("%+v", resp.StepMetrics) +} diff --git a/snippets/go/finetuning/update-finetuned-model/main.go b/snippets/go/finetuning/update-finetuned-model/main.go new file mode 100644 index 00000000..aacec03d --- /dev/null +++ b/snippets/go/finetuning/update-finetuned-model/main.go @@ -0,0 +1,26 @@ +package main + +import ( + "context" + "log" + + cohere "github.com/cohere-ai/cohere-go/v2" + "github.com/cohere-ai/cohere-go/v2/client" +) + +func main() { + co := client.NewClient(client.WithToken("<>")) + + resp, err := co.Finetuning.UpdateFinetunedModel( + context.TODO(), + "test-id", + &cohere.FinetuningUpdateFinetunedModelRequest{ + Name: "new-name", + }, + ) + if err != nil { + log.Fatal(err) + } + + log.Printf("%+v", resp.FinetunedModel) +} diff --git a/snippets/go/generate-post/main.go b/snippets/go/generate-post/main.go new file mode 100644 index 00000000..04f71740 --- /dev/null +++ b/snippets/go/generate-post/main.go @@ -0,0 +1,44 @@ +package main + +import ( + "context" + "errors" + "io" + "log" + + cohere "github.com/cohere-ai/cohere-go/v2" + client "github.com/cohere-ai/cohere-go/v2/client" +) + +func main() { + co := client.NewClient(client.WithToken("<>")) + + resp, err := co.GenerateStream( + context.TODO(), + &cohere.GenerateStreamRequest{ + Prompt: "Please explain to me how LLMs work", + }, + ) + + if err != nil { + log.Fatal(err) + } + + // Make sure to close the stream when you're done reading. + // This is easily handled with defer. + defer resp.Close() + + for { + message, err := resp.Recv() + + if errors.Is(err, io.EOF) { + // An io.EOF error means the server is done sending messages + // and should be treated as a success. + break + } + + if message.TextGeneration != nil { + log.Printf("%+v", resp) + } + } +} diff --git a/snippets/go/models-list-get/main.go b/snippets/go/models-list-get/main.go new file mode 100644 index 00000000..79916b7c --- /dev/null +++ b/snippets/go/models-list-get/main.go @@ -0,0 +1,21 @@ +package main + +import ( + "context" + "log" + + cohere "github.com/cohere-ai/cohere-go/v2" + client "github.com/cohere-ai/cohere-go/v2/client" +) + +func main() { + co := client.NewClient(client.WithToken("<>")) + + resp, err := co.Models.List(context.TODO(), &cohere.ModelsListRequest{}) + + if err != nil { + log.Fatal(err) + } + + log.Printf("%+v", resp) +} diff --git a/snippets/go/rerank-post/main.go b/snippets/go/rerank-post/main.go new file mode 100644 index 00000000..ddba4a22 --- /dev/null +++ b/snippets/go/rerank-post/main.go @@ -0,0 +1,33 @@ +package main + +import ( + "context" + "log" + + cohere "github.com/cohere-ai/cohere-go/v2" + client "github.com/cohere-ai/cohere-go/v2/client" +) + +func main() { + co := client.NewClient(client.WithToken("<>")) + + resp, err := co.Rerank( + context.TODO(), + &cohere.RerankRequest{ + Query: "What is the capital of the United States?", + Documents: []*cohere.RerankRequestDocumentsItem{ + {String: "Carson City is the capital city of the American state of Nevada."}, + {String: "The Commonwealth of the Northern Mariana Islands is a group of islands in the Pacific Ocean. Its capital is Saipan."}, + {String: "Capitalization or capitalisation in English grammar is the use of a capital letter at the start of a word. English usage varies from capitalization in other languages."}, + {String: "Washington, D.C. (also known as simply Washington or D.C., and officially as the District of Columbia) is the capital of the United States. It is a federal district."}, + }, + Model: cohere.String("rerank-english-v3.0"), + }, + ) + + if err != nil { + log.Fatal(err) + } + + log.Printf("%+v", resp) +} diff --git a/snippets/go/summarize-post/main.go b/snippets/go/summarize-post/main.go new file mode 100644 index 00000000..ae473f87 --- /dev/null +++ b/snippets/go/summarize-post/main.go @@ -0,0 +1,26 @@ +package main + +import ( + "context" + "log" + + cohere "github.com/cohere-ai/cohere-go/v2" + client "github.com/cohere-ai/cohere-go/v2/client" +) + +func main() { + co := client.NewClient(client.WithToken("<>")) + + resp, err := co.Summarize( + context.TODO(), + &cohere.SummarizeRequest{ + Text: "the quick brown fox jumped over the lazy dog and then the dog jumped over the fox the quick brown fox jumped over the lazy dog the quick brown fox jumped over the lazy dog the quick brown fox jumped over the lazy dog the quick brown fox jumped over the lazy dog", + }, + ) + + if err != nil { + log.Fatal(err) + } + + log.Printf("%+v", resp) +} diff --git a/snippets/go/tokenize-post/main.go b/snippets/go/tokenize-post/main.go new file mode 100644 index 00000000..fc67f83b --- /dev/null +++ b/snippets/go/tokenize-post/main.go @@ -0,0 +1,27 @@ +package main + +import ( + "context" + "log" + + cohere "github.com/cohere-ai/cohere-go/v2" + client "github.com/cohere-ai/cohere-go/v2/client" +) + +func main() { + co := client.NewClient(client.WithToken("<>")) + + resp, err := co.Tokenize( + context.TODO(), + &cohere.TokenizeRequest{ + Text: "cohere <3", + Model: "base", + }, + ) + + if err != nil { + log.Fatal(err) + } + + log.Printf("%+v", resp) +} diff --git a/snippets/java/.gitattributes b/snippets/java/.gitattributes new file mode 100644 index 00000000..097f9f98 --- /dev/null +++ b/snippets/java/.gitattributes @@ -0,0 +1,9 @@ +# +# https://help.github.com/articles/dealing-with-line-endings/ +# +# Linux start script should use lf +/gradlew text eol=lf + +# These are Windows script files and should use crlf +*.bat text eol=crlf + diff --git a/snippets/java/.gitignore b/snippets/java/.gitignore new file mode 100644 index 00000000..1b6985c0 --- /dev/null +++ b/snippets/java/.gitignore @@ -0,0 +1,5 @@ +# Ignore Gradle project-specific cache directory +.gradle + +# Ignore Gradle build output directory +build diff --git a/snippets/java/app/build.gradle b/snippets/java/app/build.gradle new file mode 100644 index 00000000..da819103 --- /dev/null +++ b/snippets/java/app/build.gradle @@ -0,0 +1,74 @@ +/* + * This file was generated by the Gradle 'init' task. + * + * This generated file contains a sample Java application project to get you started. + * For more details on building Java & JVM projects, please refer to https://docs.gradle.org/8.5/userguide/building_java_projects.html in the Gradle documentation. + */ + +plugins { + // Apply the application plugin to add support for building a CLI application in Java. + id 'application' + + id("com.diffplug.spotless") version "6.25.0" +} + +repositories { + // Use Maven Central for resolving dependencies. + mavenCentral() +} + +dependencies { + // Use JUnit Jupiter for testing. + testImplementation libs.junit.jupiter + + testRuntimeOnly 'org.junit.platform:junit-platform-launcher' + + // This dependency is used by the application. + implementation libs.guava + + implementation 'com.cohere:cohere-java:+' +} + +spotless { + // optional: limit format enforcement to just the files changed by this feature branch + ratchetFrom 'origin/main' + + format 'misc', { + // define the files to apply `misc` to + target '*.gradle', '.gitattributes', '.gitignore' + + // define the steps to apply to those files + trimTrailingWhitespace() + indentWithTabs() // or spaces. Takes an integer argument if you don't like 4 + endWithNewline() + } + java { + // don't need to set target, it is inferred from java + + // apply a specific flavor of google-java-format + googleJavaFormat('1.17.0').aosp().reflowLongStrings().skipJavadocFormatting() + // fix formatting of type annotations + formatAnnotations() + // make sure every file has the following copyright header. + // optionally, Spotless can set copyright years by digging + // through git history (see "license" section below) + licenseHeader '/* (C)$YEAR */' + } +} + + +// Apply a specific Java toolchain to ease working on different environments. +java { + toolchain { + languageVersion = JavaLanguageVersion.of(21) + } +} + +application { + mainClassName = project.hasProperty("mainClass") ? project.getProperty("mainClass") : "NULL" +} + +tasks.named('test') { + // Use JUnit Platform for unit tests. + useJUnitPlatform() +} diff --git a/snippets/java/app/src/main/java/ClassifyPost.java b/snippets/java/app/src/main/java/ClassifyPost.java new file mode 100644 index 00000000..4be4c008 --- /dev/null +++ b/snippets/java/app/src/main/java/ClassifyPost.java @@ -0,0 +1,30 @@ +import com.cohere.api.Cohere; +import com.cohere.api.requests.ClassifyRequest; +import com.cohere.api.types.ClassifyExample; +import com.cohere.api.types.ClassifyResponse; + +import java.util.List; + + +public class ClassifyPost { + public static void main(String[] args) { + Cohere cohere = Cohere.builder().token("<>").clientName("snippet").build(); + + ClassifyResponse response = cohere.classify(ClassifyRequest.builder().addAllInputs( + List.of("Confirm your email address", "hey i need u to send some $") + ).examples(List.of( + ClassifyExample.builder().text("Dermatologists don't like her!").label("Spam").build(), + ClassifyExample.builder().text("'Hello, open to this?'").label("Spam").build(), + ClassifyExample.builder().text("I need help please wire me $1000 right now").label("Spam").build(), + ClassifyExample.builder().text("Nice to know you ;)").label("Spam").build(), + ClassifyExample.builder().text("Please help me?").label("Spam").build(), + ClassifyExample.builder().text("Your parcel will be delivered today").label("Not spam").build(), + ClassifyExample.builder().text("Review changes to our Terms and Conditions").label("Not spam").build(), + ClassifyExample.builder().text("Weekly sync notes").label("Not spam").build(), + ClassifyExample.builder().text("'Re: Follow up from today's meeting'").label("Not spam").build(), + ClassifyExample.builder().text("Pre-read for tomorrow").label("Not spam").build() + )).build()); + + System.out.println(response); + } +} diff --git a/snippets/java/app/src/main/java/ConnectorCreate.java b/snippets/java/app/src/main/java/ConnectorCreate.java new file mode 100644 index 00000000..2bd9fefd --- /dev/null +++ b/snippets/java/app/src/main/java/ConnectorCreate.java @@ -0,0 +1,16 @@ +import com.cohere.api.Cohere; +import com.cohere.api.resources.connectors.requests.CreateConnectorRequest; +import com.cohere.api.types.CreateConnectorResponse; + + +public class ConnectorCreate { + public static void main(String[] args) { + Cohere cohere = Cohere.builder().token("<>").clientName("snippet").build(); + + CreateConnectorResponse response = cohere.connectors().create(CreateConnectorRequest.builder() + .name("Example connector") + .url("https://connector-example.com/search").build()); + + System.out.println(response); + } +} diff --git a/snippets/java/app/src/main/java/ConnectorDelete.java b/snippets/java/app/src/main/java/ConnectorDelete.java new file mode 100644 index 00000000..4b954df9 --- /dev/null +++ b/snippets/java/app/src/main/java/ConnectorDelete.java @@ -0,0 +1,11 @@ +import com.cohere.api.Cohere; + + +public class ConnectorDelete { + public static void main(String[] args) { + Cohere cohere = Cohere.builder().token("<>").clientName("snippet").build(); + + cohere.connectors().delete("test-id"); + } +} + diff --git a/snippets/java/app/src/main/java/ConnectorGet.java b/snippets/java/app/src/main/java/ConnectorGet.java new file mode 100644 index 00000000..fc6727bc --- /dev/null +++ b/snippets/java/app/src/main/java/ConnectorGet.java @@ -0,0 +1,13 @@ +import com.cohere.api.Cohere; +import com.cohere.api.types.GetConnectorResponse; + + +public class ConnectorGet { + public static void main(String[] args) { + Cohere cohere = Cohere.builder().token("<>").clientName("snippet").build(); + + GetConnectorResponse response = cohere.connectors().get("test-id"); + + System.out.println(response); + } +} diff --git a/snippets/java/app/src/main/java/ConnectorPatch.java b/snippets/java/app/src/main/java/ConnectorPatch.java new file mode 100644 index 00000000..0dd78028 --- /dev/null +++ b/snippets/java/app/src/main/java/ConnectorPatch.java @@ -0,0 +1,13 @@ +import com.cohere.api.Cohere; +import com.cohere.api.resources.connectors.requests.UpdateConnectorRequest; + + +public class ConnectorPatch { + public static void main(String[] args) { + Cohere cohere = Cohere.builder().token("<>").clientName("snippet").build(); + + cohere.connectors().update("test-id", UpdateConnectorRequest.builder() + .name("new name") + .url("https://connector-example.com/search").build()); + } +} diff --git a/snippets/java/app/src/main/java/ConnectorsIdOauthAuthorizePost.java b/snippets/java/app/src/main/java/ConnectorsIdOauthAuthorizePost.java new file mode 100644 index 00000000..fcef75a7 --- /dev/null +++ b/snippets/java/app/src/main/java/ConnectorsIdOauthAuthorizePost.java @@ -0,0 +1,14 @@ +import com.cohere.api.Cohere; +import com.cohere.api.resources.connectors.requests.ConnectorsOAuthAuthorizeRequest; +import com.cohere.api.types.OAuthAuthorizeResponse; + + +public class ConnectorsIdOauthAuthorizePost { + public static void main(String[] args) { + Cohere cohere = Cohere.builder().token("<>").clientName("snippet").build(); + + OAuthAuthorizeResponse response = cohere.connectors().oAuthAuthorize("test-id", ConnectorsOAuthAuthorizeRequest.builder().afterTokenRedirect("https://connector-example.com/search").build()); + + System.out.println(response); + } +} diff --git a/snippets/java/app/src/main/java/ConnectorsList.java b/snippets/java/app/src/main/java/ConnectorsList.java new file mode 100644 index 00000000..866a4c76 --- /dev/null +++ b/snippets/java/app/src/main/java/ConnectorsList.java @@ -0,0 +1,13 @@ +import com.cohere.api.Cohere; +import com.cohere.api.types.ListConnectorsResponse; + + +public class ConnectorsList { + public static void main(String[] args) { + Cohere cohere = Cohere.builder().token("<>").clientName("snippet").build(); + + ListConnectorsResponse list = cohere.connectors().list(); + + System.out.println(list); + } +} diff --git a/snippets/java/app/src/main/java/DatasetDelete.java b/snippets/java/app/src/main/java/DatasetDelete.java new file mode 100644 index 00000000..8faf5eb6 --- /dev/null +++ b/snippets/java/app/src/main/java/DatasetDelete.java @@ -0,0 +1,11 @@ +import com.cohere.api.Cohere; + + +public class DatasetDelete { + public static void main(String[] args) { + Cohere cohere = Cohere.builder().token("<>").clientName("snippet").build(); + + cohere.datasets().delete("id"); + + } +} diff --git a/snippets/java/app/src/main/java/DatasetGet.java b/snippets/java/app/src/main/java/DatasetGet.java new file mode 100644 index 00000000..044b83cd --- /dev/null +++ b/snippets/java/app/src/main/java/DatasetGet.java @@ -0,0 +1,13 @@ +import com.cohere.api.Cohere; +import com.cohere.api.resources.datasets.types.DatasetsGetResponse; + + +public class DatasetGet { + public static void main(String[] args) { + Cohere cohere = Cohere.builder().token("<>").clientName("snippet").build(); + + DatasetsGetResponse response = cohere.datasets().get("dataset_id"); + + System.out.println(response); + } +} diff --git a/snippets/java/app/src/main/java/DatasetPost.java b/snippets/java/app/src/main/java/DatasetPost.java new file mode 100644 index 00000000..9022aa20 --- /dev/null +++ b/snippets/java/app/src/main/java/DatasetPost.java @@ -0,0 +1,17 @@ +import com.cohere.api.Cohere; +import com.cohere.api.resources.datasets.requests.DatasetsCreateRequest; +import com.cohere.api.resources.datasets.types.DatasetsCreateResponse; +import com.cohere.api.types.DatasetType; + +import java.util.Optional; + + +public class DatasetPost { + public static void main(String[] args) { + Cohere cohere = Cohere.builder().token("<>").clientName("snippet").build(); + + DatasetsCreateResponse response = cohere.datasets().create(null, Optional.empty(), DatasetsCreateRequest.builder().name("prompt-completion-dataset").type(DatasetType.PROMPT_COMPLETION_FINETUNE_INPUT).build()); + + System.out.println(response); + } +} diff --git a/snippets/java/app/src/main/java/DatasetUsageGet.java b/snippets/java/app/src/main/java/DatasetUsageGet.java new file mode 100644 index 00000000..12a01748 --- /dev/null +++ b/snippets/java/app/src/main/java/DatasetUsageGet.java @@ -0,0 +1,13 @@ +import com.cohere.api.Cohere; +import com.cohere.api.resources.datasets.types.DatasetsGetUsageResponse; + + +public class DatasetUsageGet { + public static void main(String[] args) { + Cohere cohere = Cohere.builder().token("<>").clientName("snippet").build(); + + DatasetsGetUsageResponse response = cohere.datasets().getUsage(); + + System.out.println(response); + } +} diff --git a/snippets/java/app/src/main/java/DetokenizePost.java b/snippets/java/app/src/main/java/DetokenizePost.java new file mode 100644 index 00000000..cc776ae6 --- /dev/null +++ b/snippets/java/app/src/main/java/DetokenizePost.java @@ -0,0 +1,18 @@ +import com.cohere.api.Cohere; +import com.cohere.api.requests.DetokenizeRequest; +import com.cohere.api.types.DetokenizeResponse; + +import java.util.List; + + +public class DetokenizePost { + public static void main(String[] args) { + Cohere cohere = Cohere.builder().token("<>").clientName("snippet").build(); + + DetokenizeResponse response = cohere.detokenize( + DetokenizeRequest.builder().model("command").tokens(List.of(8466, 5169, 2594, 8, 2792, 43)).build() + ); + + System.out.println(response); + } +} diff --git a/snippets/java/app/src/main/java/EmbedJobsCancel.java b/snippets/java/app/src/main/java/EmbedJobsCancel.java new file mode 100644 index 00000000..56ebbeba --- /dev/null +++ b/snippets/java/app/src/main/java/EmbedJobsCancel.java @@ -0,0 +1,10 @@ +import com.cohere.api.Cohere; + + +public class EmbedJobsCancel { + public static void main(String[] args) { + Cohere cohere = Cohere.builder().token("<>").clientName("snippet").build(); + + cohere.embedJobs().cancel("job_id"); + } +} diff --git a/snippets/java/app/src/main/java/EmbedJobsGet.java b/snippets/java/app/src/main/java/EmbedJobsGet.java new file mode 100644 index 00000000..33a379fc --- /dev/null +++ b/snippets/java/app/src/main/java/EmbedJobsGet.java @@ -0,0 +1,13 @@ +import com.cohere.api.Cohere; +import com.cohere.api.types.ListEmbedJobResponse; + + +public class EmbedJobsGet { + public static void main(String[] args) { + Cohere cohere = Cohere.builder().token("<>").clientName("snippet").build(); + + ListEmbedJobResponse response = cohere.embedJobs().list(); + + System.out.println(response); + } +} diff --git a/snippets/java/app/src/main/java/EmbedJobsPost.java b/snippets/java/app/src/main/java/EmbedJobsPost.java new file mode 100644 index 00000000..ff68f91b --- /dev/null +++ b/snippets/java/app/src/main/java/EmbedJobsPost.java @@ -0,0 +1,15 @@ +import com.cohere.api.Cohere; +import com.cohere.api.resources.embedjobs.requests.CreateEmbedJobRequest; +import com.cohere.api.types.CreateEmbedJobResponse; +import com.cohere.api.types.EmbedInputType; + + +public class EmbedJobsPost { + public static void main(String[] args) { + Cohere cohere = Cohere.builder().token("<>").clientName("snippet").build(); + + CreateEmbedJobResponse response = cohere.embedJobs().create(CreateEmbedJobRequest.builder().model("embed-english-v3.0").datasetId("ds.id").inputType(EmbedInputType.SEARCH_DOCUMENT).build()); + + System.out.println(response); + } +} diff --git a/snippets/java/app/src/main/java/EmbedPost.java b/snippets/java/app/src/main/java/EmbedPost.java new file mode 100644 index 00000000..70e9dc39 --- /dev/null +++ b/snippets/java/app/src/main/java/EmbedPost.java @@ -0,0 +1,17 @@ +import com.cohere.api.Cohere; +import com.cohere.api.requests.EmbedRequest; +import com.cohere.api.types.EmbedInputType; +import com.cohere.api.types.EmbedResponse; + +import java.util.List; + + +public class EmbedPost { + public static void main(String[] args) { + Cohere cohere = Cohere.builder().token("<>").clientName("snippet").build(); + + EmbedResponse response = cohere.embed(EmbedRequest.builder().texts(List.of("hello", "goodbye")).model("embed-english-v3.0").inputType(EmbedInputType.CLASSIFICATION).build()); + + System.out.println(response); + } +} diff --git a/snippets/java/app/src/main/java/EmebedJobsGet.java b/snippets/java/app/src/main/java/EmebedJobsGet.java new file mode 100644 index 00000000..cad0e66d --- /dev/null +++ b/snippets/java/app/src/main/java/EmebedJobsGet.java @@ -0,0 +1,13 @@ +import com.cohere.api.Cohere; +import com.cohere.api.types.EmbedJob; + + +public class EmebedJobsGet { + public static void main(String[] args) { + Cohere cohere = Cohere.builder().token("<>").clientName("snippet").build(); + + EmbedJob response = cohere.embedJobs().get("job_id"); + + System.out.println(response); + } +} diff --git a/snippets/java/app/src/main/java/GeneratePost.java b/snippets/java/app/src/main/java/GeneratePost.java new file mode 100644 index 00000000..9f165e27 --- /dev/null +++ b/snippets/java/app/src/main/java/GeneratePost.java @@ -0,0 +1,14 @@ +import com.cohere.api.Cohere; +import com.cohere.api.requests.GenerateRequest; +import com.cohere.api.types.Generation; + + +public class GeneratePost { + public static void main(String[] args) { + Cohere cohere = Cohere.builder().token("<>").clientName("snippet").build(); + + Generation response = cohere.generate(GenerateRequest.builder().prompt("Please explain to me how LLMs work").build()); + + System.out.println(response); + } +} diff --git a/snippets/java/app/src/main/java/ModelsListGet.java b/snippets/java/app/src/main/java/ModelsListGet.java new file mode 100644 index 00000000..3660f668 --- /dev/null +++ b/snippets/java/app/src/main/java/ModelsListGet.java @@ -0,0 +1,13 @@ +import com.cohere.api.Cohere; +import com.cohere.api.types.ListModelsResponse; + + +public class ModelsListGet { + public static void main(String[] args) { + Cohere cohere = Cohere.builder().token("<>").clientName("snippet").build(); + + ListModelsResponse response = cohere.models().list(); + + System.out.println(response); + } +} diff --git a/snippets/java/app/src/main/java/RerankPost.java b/snippets/java/app/src/main/java/RerankPost.java new file mode 100644 index 00000000..49d74834 --- /dev/null +++ b/snippets/java/app/src/main/java/RerankPost.java @@ -0,0 +1,23 @@ +import com.cohere.api.Cohere; +import com.cohere.api.requests.RerankRequest; +import com.cohere.api.types.RerankRequestDocumentsItem; +import com.cohere.api.types.RerankResponse; + +import java.util.List; + + +public class RerankPost { + public static void main(String[] args) { + Cohere cohere = Cohere.builder().token("<>").clientName("snippet").build(); + + RerankResponse response = cohere.rerank(RerankRequest.builder().query("What is the capital of the United States?").documents(List.of( + RerankRequestDocumentsItem.of("Carson City is the capital city of the American state of Nevada."), + RerankRequestDocumentsItem.of("The Commonwealth of the Northern Mariana Islands is a group of islands in the Pacific Ocean. Its capital is Saipan."), + RerankRequestDocumentsItem.of("Capitalization or capitalisation in English grammar is the use of a capital letter at the start of a word. English usage varies from capitalization in other languages."), + RerankRequestDocumentsItem.of("Washington, D.C. (also known as simply Washington or D.C., and officially as the District of Columbia) is the capital of the United States. It is a federal district."), + RerankRequestDocumentsItem.of("Capital punishment (the death penalty) has existed in the United States since beforethe United States was a country. As of 2017, capital punishment is legal in 30 of the 50 states.") + )).model("rerank-english-v3.0").topN(3).build()); + + System.out.println(response); + } +} diff --git a/snippets/java/app/src/main/java/SummarizePost.java b/snippets/java/app/src/main/java/SummarizePost.java new file mode 100644 index 00000000..f0a411e4 --- /dev/null +++ b/snippets/java/app/src/main/java/SummarizePost.java @@ -0,0 +1,37 @@ +import com.cohere.api.Cohere; +import com.cohere.api.requests.SummarizeRequest; +import com.cohere.api.types.SummarizeResponse; + + +public class SummarizePost { + public static void main(String[] args) { + Cohere cohere = Cohere.builder().token("<>").clientName("snippet").build(); + + SummarizeResponse response = cohere.summarize(SummarizeRequest.builder().text( + """ + Ice cream is a sweetened frozen food typically eaten as a snack or dessert.\s + It may be made from milk or cream and is flavoured with a sweetener,\s + either sugar or an alternative, and a spice, such as cocoa or vanilla,\s + or with fruit such as strawberries or peaches.\s + It can also be made by whisking a flavored cream base and liquid nitrogen together.\s + Food coloring is sometimes added, in addition to stabilizers.\s + The mixture is cooled below the freezing point of water and stirred to incorporate air spaces\s + and to prevent detectable ice crystals from forming. The result is a smooth,\s + semi-solid foam that is solid at very low temperatures (below 2 °C or 35 °F).\s + It becomes more malleable as its temperature increases.\\n\\n + The meaning of the name "ice cream" varies from one country to another.\s + In some countries, such as the United States, "ice cream" applies only to a specific variety,\s + and most governments regulate the commercial use of the various terms according to the\s + relative quantities of the main ingredients, notably the amount of cream.\s + Products that do not meet the criteria to be called ice cream are sometimes labelled\s + "frozen dairy dessert" instead. In other countries, such as Italy and Argentina,\s + one word is used fo\\r all variants. Analogues made from dairy alternatives,\s + such as goat's or sheep's milk, or milk substitutes\s + (e.g., soy, cashew, coconut, almond milk or tofu), are available for those who are\s + lactose intolerant, allergic to dairy protein or vegan. + """ + ).build()); + + System.out.println(response); + } +} diff --git a/snippets/java/app/src/main/java/TokenizePost.java b/snippets/java/app/src/main/java/TokenizePost.java new file mode 100644 index 00000000..981186f6 --- /dev/null +++ b/snippets/java/app/src/main/java/TokenizePost.java @@ -0,0 +1,14 @@ +import com.cohere.api.Cohere; +import com.cohere.api.requests.TokenizeRequest; +import com.cohere.api.types.TokenizeResponse; + + +public class TokenizePost { + public static void main(String[] args) { + Cohere cohere = Cohere.builder().token("<>").clientName("snippet").build(); + + TokenizeResponse response = cohere.tokenize(TokenizeRequest.builder().text("tokenize me").model("command").build()); + + System.out.println(response); + } +} diff --git a/snippets/java/app/src/main/java/chatpost/Default.java b/snippets/java/app/src/main/java/chatpost/Default.java new file mode 100644 index 00000000..b687539b --- /dev/null +++ b/snippets/java/app/src/main/java/chatpost/Default.java @@ -0,0 +1,36 @@ +/* (C)2024 */ +package chatpost; + +import com.cohere.api.Cohere; +import com.cohere.api.requests.ChatRequest; +import com.cohere.api.types.ChatMessage; +import com.cohere.api.types.ChatMessageRole; +import com.cohere.api.types.NonStreamedChatResponse; +import java.util.List; + +public class Default { + public static void main(String[] args) { + Cohere cohere = Cohere.builder().token("<>").clientName("snippet").build(); + + NonStreamedChatResponse response = + cohere.chat( + ChatRequest.builder() + .message("What year was he born?") + .chatHistory( + List.of( + ChatMessage.builder() + .role(ChatMessageRole.USER) + .message("Who discovered gravity?") + .build(), + ChatMessage.builder() + .role(ChatMessageRole.CHATBOT) + .message( + "The man who is widely credited" + + " with discovering gravity is" + + " Sir Isaac Newton") + .build())) + .build()); + + System.out.println(response); + } +} diff --git a/snippets/java/app/src/main/java/chatpost/Documents.java b/snippets/java/app/src/main/java/chatpost/Documents.java new file mode 100644 index 00000000..3abd4d76 --- /dev/null +++ b/snippets/java/app/src/main/java/chatpost/Documents.java @@ -0,0 +1,153 @@ +/* (C)2024 */ +package chatpost; + +import com.cohere.api.Cohere; +import com.cohere.api.requests.ChatRequest; +import com.cohere.api.types.NonStreamedChatResponse; +import java.util.List; +import java.util.Map; + +public class Documents { + public static void main(String[] args) { + Cohere cohere = Cohere.builder().token("<>").clientName("snippet").build(); + + NonStreamedChatResponse response = + cohere.chat( + ChatRequest.builder() + .message("What year was he born?") + .documents( + List.of( + Map.of( + "title", + "CSPC: Backstreet Boys Popularity" + + " Analysis - ChartMasters", + "snippet", + "↓ Skip to Main Content\n\n" + + "Music industry – One step" + + " closer to being" + + " accurate\n\n" + + "CSPC: Backstreet Boys" + + " Popularity Analysis\n\n" + + "Hernán Lopez Posted on" + + " February 9, 2017 Posted in" + + " CSPC 72 Comments Tagged" + + " with Backstreet Boys, Boy" + + " band\n\n" + + "At one point, Backstreet" + + " Boys defined success:" + + " massive albums sales across" + + " the globe, great singles" + + " sales, plenty of chart" + + " topping releases, hugely" + + " hyped tours and tremendous" + + " media coverage.\n\n" + + "It is true that they" + + " benefited from" + + " extraordinarily good market" + + " conditions in all markets." + + " After all, the all-time" + + " record year for the music" + + " business, as far as" + + " revenues in billion dollars" + + " are concerned, was actually" + + " 1999. That is, back when" + + " this five men group was at" + + " its peak."), + Map.of( + "title", + "CSPC: NSYNC Popularity Analysis -" + + " ChartMasters", + "snippet", + "↓ Skip to Main Content\n\n" + + "Music industry – One step" + + " closer to being" + + " accurate\n\n" + + "CSPC: NSYNC Popularity" + + " Analysis\n\n" + + "MJD Posted on February 9," + + " 2018 Posted in CSPC 27" + + " Comments Tagged with Boy" + + " band, N'Sync\n\n" + + "At the turn of the" + + " millennium three teen acts" + + " were huge in the US, the" + + " Backstreet Boys, Britney" + + " Spears and NSYNC. The" + + " latter is the only one we" + + " haven’t study so far. It" + + " took 15 years and Adele to" + + " break their record of 2,4" + + " million units sold of No" + + " Strings Attached in its" + + " first week alone.\n\n" + + "It wasn’t a fluke, as the" + + " second fastest selling" + + " album of the Soundscan era" + + " prior 2015, was also theirs" + + " since Celebrity debuted" + + " with 1,88 million units" + + " sold."), + Map.of( + "title", + "CSPC: Backstreet Boys Popularity" + + " Analysis - ChartMasters", + "snippet", + " 1997, 1998, 2000 and 2001 also" + + " rank amongst some of the" + + " very best years.\n\n" + + "Yet the way many music" + + " consumers – especially" + + " teenagers and young women’s" + + " – embraced their output" + + " deserves its own chapter." + + " If Jonas Brothers and more" + + " recently One Direction" + + " reached a great level of" + + " popularity during the past" + + " decade, the type of success" + + " achieved by Backstreet Boys" + + " is in a completely" + + " different level as they" + + " really dominated the" + + " business for a few years" + + " all over the world," + + " including in some countries" + + " that were traditionally" + + " hard to penetrate for" + + " Western artists.\n\n" + + "We will try to analyze the" + + " extent of that hegemony" + + " with this new article with" + + " final results which will" + + " more than surprise many" + + " readers."), + Map.of( + "title", + "CSPC: NSYNC Popularity Analysis -" + + " ChartMasters", + "snippet", + " Was the teen group led by Justin" + + " Timberlake really that big? Was it" + + " only in the US where they found" + + " success? Or were they a global" + + " phenomenon?\n\n" + + "As usual, I’ll be using the" + + " Commensurate Sales to Popularity" + + " Concept in order to relevantly" + + " gauge their results. This concept" + + " will not only bring you sales" + + " information for all NSYNC‘s albums," + + " physical and download singles, as" + + " well as audio and video streaming," + + " but it will also determine their" + + " true popularity. If you are not yet" + + " familiar with the CSPC method, the" + + " next page explains it with a short" + + " video. I fully recommend watching" + + " the video before getting into the" + + " sales figures."))) + .build()); + + System.out.println(response); + } +} diff --git a/snippets/java/app/src/main/java/chatpost/Stream.java b/snippets/java/app/src/main/java/chatpost/Stream.java new file mode 100644 index 00000000..890d267a --- /dev/null +++ b/snippets/java/app/src/main/java/chatpost/Stream.java @@ -0,0 +1,47 @@ +/* (C)2024 */ +package chatpost; + +import com.cohere.api.Cohere; +import com.cohere.api.requests.ChatStreamRequest; +import com.cohere.api.types.ChatMessage; +import com.cohere.api.types.ChatMessageRole; +import com.cohere.api.types.ChatTextGenerationEvent; +import com.cohere.api.types.StreamedChatResponse; +import java.util.List; + +public class Stream { + public static void main(String[] args) { + Cohere cohere = Cohere.builder().token("<>").clientName("snippet").build(); + + Iterable response = + cohere.chatStream( + ChatStreamRequest.builder() + .message("What year was he born?") + .chatHistory( + List.of( + ChatMessage.builder() + .role(ChatMessageRole.USER) + .message("Who discovered gravity?") + .build(), + ChatMessage.builder() + .role(ChatMessageRole.CHATBOT) + .message( + "The man who is widely credited" + + " with discovering gravity is" + + " Sir Isaac Newton") + .build())) + .build()); + + for (StreamedChatResponse chatResponse : response) { + if (chatResponse.isTextGeneration()) { + System.out.println( + chatResponse + .getTextGeneration() + .map(ChatTextGenerationEvent::getText) + .orElse("")); + } + } + + System.out.println(response); + } +} diff --git a/snippets/java/app/src/main/java/chatpost/Tools.java b/snippets/java/app/src/main/java/chatpost/Tools.java new file mode 100644 index 00000000..3545beaf --- /dev/null +++ b/snippets/java/app/src/main/java/chatpost/Tools.java @@ -0,0 +1,80 @@ +/* (C)2024 */ +package chatpost; + +import com.cohere.api.Cohere; +import com.cohere.api.requests.ChatRequest; +import com.cohere.api.types.NonStreamedChatResponse; +import com.cohere.api.types.Tool; +import com.cohere.api.types.ToolParameterDefinitionsValue; +import java.util.List; +import java.util.Map; + +public class Tools { + public static void main(String[] args) { + Cohere cohere = Cohere.builder().token("<>").clientName("snippet").build(); + + NonStreamedChatResponse response = + cohere.chat( + ChatRequest.builder() + .message( + "Can you provide a sales summary for 29th September 2023," + + " and also give me some details about the products in" + + " the 'Electronics' category, for example their" + + " prices and stock levels?") + .tools( + List.of( + Tool.builder() + .name("query_daily_sales_report") + .description( + "Connects to a database to retrieve" + + " overall sales volumes and" + + " sales information for a" + + " given day.") + .parameterDefinitions( + Map.of( + "day", + ToolParameterDefinitionsValue + .builder() + .type("str") + .description( + "Retrieves" + + " sales" + + " data" + + " for this" + + " day," + + " formatted" + + " as YYYY-MM-DD.") + .required(true) + .build())) + .build(), + Tool.builder() + .name("query_product_catalog") + .description( + "Connects to a a product catalog" + + " with information about all" + + " the products being sold," + + " including categories," + + " prices, and stock levels.") + .parameterDefinitions( + Map.of( + "category", + ToolParameterDefinitionsValue + .builder() + .type("str") + .description( + "Retrieves" + + " product" + + " information" + + " data" + + " for all" + + " products" + + " in this" + + " category.") + .required(true) + .build())) + .build())) + .build()); + + System.out.println(response); + } +} diff --git a/snippets/java/app/src/main/java/finetuning/CreateFinetunedModel.java b/snippets/java/app/src/main/java/finetuning/CreateFinetunedModel.java new file mode 100644 index 00000000..6ab2fb5f --- /dev/null +++ b/snippets/java/app/src/main/java/finetuning/CreateFinetunedModel.java @@ -0,0 +1,16 @@ +package finetuning; + +import com.cohere.api.Cohere; +import com.cohere.api.resources.finetuning.finetuning.types.*; + +public class CreateFinetunedModel { + public static void main(String[] args) { + Cohere cohere = Cohere.builder().token("<>").clientName("snippet").build(); + + CreateFinetunedModelResponse response = cohere.finetuning().createFinetunedModel(FinetunedModel.builder().name("test-finetuned-model").settings(Settings.builder().baseModel(BaseModel.builder().baseType(BaseType.BASE_TYPE_GENERATIVE).build()).datasetId("my-dataset-id").build()).build()); + + System.out.println(response); + } +} + + diff --git a/snippets/java/app/src/main/java/finetuning/DeleteFinetunedModel.java b/snippets/java/app/src/main/java/finetuning/DeleteFinetunedModel.java new file mode 100644 index 00000000..5a2ac752 --- /dev/null +++ b/snippets/java/app/src/main/java/finetuning/DeleteFinetunedModel.java @@ -0,0 +1,12 @@ +package finetuning; + +import com.cohere.api.Cohere; + + +public class DeleteFinetunedModel { + public static void main(String[] args) { + Cohere cohere = Cohere.builder().token("<>").clientName("snippet").build(); + + cohere.finetuning().deleteFinetunedModel("test-id"); + } +} diff --git a/snippets/java/app/src/main/java/finetuning/GetFinetunedModel.java b/snippets/java/app/src/main/java/finetuning/GetFinetunedModel.java new file mode 100644 index 00000000..2a7a7507 --- /dev/null +++ b/snippets/java/app/src/main/java/finetuning/GetFinetunedModel.java @@ -0,0 +1,15 @@ +package finetuning; + +import com.cohere.api.Cohere; +import com.cohere.api.resources.finetuning.finetuning.types.GetFinetunedModelResponse; + +public class GetFinetunedModel { + public static void main(String[] args) { + Cohere cohere = Cohere.builder().token("<>").clientName("snippet").build(); + + GetFinetunedModelResponse response = cohere.finetuning().getFinetunedModel("test-id"); + + System.out.println(response); + } +} + diff --git a/snippets/java/app/src/main/java/finetuning/ListEvents.java b/snippets/java/app/src/main/java/finetuning/ListEvents.java new file mode 100644 index 00000000..9b8f60d9 --- /dev/null +++ b/snippets/java/app/src/main/java/finetuning/ListEvents.java @@ -0,0 +1,14 @@ +package finetuning; + +import com.cohere.api.Cohere; +import com.cohere.api.resources.finetuning.finetuning.types.ListEventsResponse; + +public class ListEvents { + public static void main(String[] args) { + Cohere cohere = Cohere.builder().token("<>").clientName("snippet").build(); + + ListEventsResponse response = cohere.finetuning().listEvents("test-id"); + + System.out.println(response); + } +} diff --git a/snippets/java/app/src/main/java/finetuning/ListFinetunedModels.java b/snippets/java/app/src/main/java/finetuning/ListFinetunedModels.java new file mode 100644 index 00000000..a7d3e35f --- /dev/null +++ b/snippets/java/app/src/main/java/finetuning/ListFinetunedModels.java @@ -0,0 +1,15 @@ +package finetuning; + +import com.cohere.api.Cohere; +import com.cohere.api.resources.finetuning.finetuning.types.ListFinetunedModelsResponse; + + +public class ListFinetunedModels { + public static void main(String[] args) { + Cohere cohere = Cohere.builder().token("<>").clientName("snippet").build(); + + ListFinetunedModelsResponse response = cohere.finetuning().listFinetunedModels(); + + System.out.println(response); + } +} diff --git a/snippets/java/app/src/main/java/finetuning/ListTrainingStepMetrics.java b/snippets/java/app/src/main/java/finetuning/ListTrainingStepMetrics.java new file mode 100644 index 00000000..48e8e85c --- /dev/null +++ b/snippets/java/app/src/main/java/finetuning/ListTrainingStepMetrics.java @@ -0,0 +1,15 @@ +package finetuning; + +import com.cohere.api.Cohere; +import com.cohere.api.resources.finetuning.finetuning.types.ListTrainingStepMetricsResponse; + + +public class ListTrainingStepMetrics { + public static void main(String[] args) { + Cohere cohere = Cohere.builder().token("<>").clientName("snippet").build(); + + ListTrainingStepMetricsResponse response = cohere.finetuning().listTrainingStepMetrics("test-id"); + + System.out.println(response); + } +} diff --git a/snippets/java/app/src/main/java/finetuning/UpdateFinetunedModel.java b/snippets/java/app/src/main/java/finetuning/UpdateFinetunedModel.java new file mode 100644 index 00000000..33f78325 --- /dev/null +++ b/snippets/java/app/src/main/java/finetuning/UpdateFinetunedModel.java @@ -0,0 +1,19 @@ +package finetuning; + +import com.cohere.api.Cohere; +import com.cohere.api.resources.finetuning.finetuning.types.BaseModel; +import com.cohere.api.resources.finetuning.finetuning.types.BaseType; +import com.cohere.api.resources.finetuning.finetuning.types.Settings; +import com.cohere.api.resources.finetuning.finetuning.types.UpdateFinetunedModelResponse; +import com.cohere.api.resources.finetuning.requests.FinetuningUpdateFinetunedModelRequest; + + +public class UpdateFinetunedModel { + public static void main(String[] args) { + Cohere cohere = Cohere.builder().token("<>").clientName("snippet").build(); + + UpdateFinetunedModelResponse response = cohere.finetuning().updateFinetunedModel("test-id", FinetuningUpdateFinetunedModelRequest.builder().name("new name").settings(Settings.builder().baseModel(BaseModel.builder().baseType(BaseType.BASE_TYPE_GENERATIVE).build()).datasetId("my-dataset-id").build()).build()); + + System.out.println(response); + } +} diff --git a/snippets/java/app/src/test/java/AppTest.java b/snippets/java/app/src/test/java/AppTest.java new file mode 100644 index 00000000..30617691 --- /dev/null +++ b/snippets/java/app/src/test/java/AppTest.java @@ -0,0 +1,12 @@ +/* + * This Java source file was generated by the Gradle 'init' task. + */ + +import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.*; + +class AppTest { + @Test void pass() { + assertTrue(true); + } +} diff --git a/snippets/java/gradle/libs.versions.toml b/snippets/java/gradle/libs.versions.toml new file mode 100644 index 00000000..f0021f5e --- /dev/null +++ b/snippets/java/gradle/libs.versions.toml @@ -0,0 +1,10 @@ +# This file was generated by the Gradle 'init' task. +# https://docs.gradle.org/current/userguide/platforms.html#sub::toml-dependencies-format + +[versions] +guava = "32.1.2-jre" +junit-jupiter = "5.10.0" + +[libraries] +guava = { module = "com.google.guava:guava", version.ref = "guava" } +junit-jupiter = { module = "org.junit.jupiter:junit-jupiter", version.ref = "junit-jupiter" } diff --git a/snippets/java/gradle/wrapper/gradle-wrapper.jar b/snippets/java/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..d64cd4917707c1f8861d8cb53dd15194d4248596 GIT binary patch literal 43462 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 literal 0 HcmV?d00001 diff --git a/snippets/java/gradle/wrapper/gradle-wrapper.properties b/snippets/java/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 00000000..1af9e093 --- /dev/null +++ b/snippets/java/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,7 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip +networkTimeout=10000 +validateDistributionUrl=true +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/snippets/java/gradlew b/snippets/java/gradlew new file mode 100755 index 00000000..1aa94a42 --- /dev/null +++ b/snippets/java/gradlew @@ -0,0 +1,249 @@ +#!/bin/sh + +# +# Copyright © 2015-2021 the original authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +############################################################################## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# +############################################################################## + +# Attempt to set APP_HOME + +# Resolve links: $0 may be a link +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +# This is normally unused +# shellcheck disable=SC2034 +APP_BASE_NAME=${0##*/} +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD=maximum + +warn () { + echo "$*" +} >&2 + +die () { + echo + echo "$*" + echo + exit 1 +} >&2 + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD=$JAVA_HOME/jre/sh/java + else + JAVACMD=$JAVA_HOME/bin/java + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD=java + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +fi + +# Increase the maximum file descriptors if we can. +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac +fi + +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/snippets/java/gradlew.bat b/snippets/java/gradlew.bat new file mode 100644 index 00000000..93e3f59f --- /dev/null +++ b/snippets/java/gradlew.bat @@ -0,0 +1,92 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%"=="" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if %ERRORLEVEL% equ 0 goto execute + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if %ERRORLEVEL% equ 0 goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/snippets/java/settings.gradle b/snippets/java/settings.gradle new file mode 100644 index 00000000..89ee35ef --- /dev/null +++ b/snippets/java/settings.gradle @@ -0,0 +1,14 @@ +/* + * This file was generated by the Gradle 'init' task. + * + * The settings file is used to specify which projects to include in your build. + * For more detailed information on multi-project builds, please refer to https://docs.gradle.org/8.5/userguide/building_swift_projects.html in the Gradle documentation. + */ + +plugins { + // Apply the foojay-resolver plugin to allow automatic download of JDKs + id 'org.gradle.toolchains.foojay-resolver-convention' version '0.7.0' +} + +rootProject.name = 'java' +include('app') diff --git a/snippets/node/chat-post/default.ts b/snippets/node/chat-post/default.ts new file mode 100644 index 00000000..9ffe441e --- /dev/null +++ b/snippets/node/chat-post/default.ts @@ -0,0 +1,22 @@ +const { CohereClient } = require('cohere-ai'); + +const cohere = new CohereClient({ + token: '<>', +}); + +(async () => { + const response = await cohere.chat({ + chatHistory: [ + { role: 'USER', message: 'Who discovered gravity?' }, + { + role: 'CHATBOT', + message: 'The man who is widely credited with discovering gravity is Sir Isaac Newton', + }, + ], + message: 'What year was he born?', + // perform web search before answering the question. You can also use your own custom connector. + connectors: [{ id: 'web-search' }], + }); + + console.log(response); +})(); diff --git a/snippets/node/chat-post/documents.ts b/snippets/node/chat-post/documents.ts new file mode 100644 index 00000000..32674ba3 --- /dev/null +++ b/snippets/node/chat-post/documents.ts @@ -0,0 +1,35 @@ +const { CohereClient } = require('cohere-ai'); + +const cohere = new CohereClient({ + token: '<>', +}); + +(async () => { + const response = await cohere.chat({ + message: 'Who is more popular: Nsync or Backstreet Boys?', + documents: [ + { + title: 'CSPC: Backstreet Boys Popularity Analysis - ChartMasters', + snippet: + '↓ Skip to Main Content\n\nMusic industry – One step closer to being accurate\n\nCSPC: Backstreet Boys Popularity Analysis\n\nHernán Lopez Posted on February 9, 2017 Posted in CSPC 72 Comments Tagged with Backstreet Boys, Boy band\n\nAt one point, Backstreet Boys defined success: massive albums sales across the globe, great singles sales, plenty of chart topping releases, hugely hyped tours and tremendous media coverage.\n\nIt is true that they benefited from extraordinarily good market conditions in all markets. After all, the all-time record year for the music business, as far as revenues in billion dollars are concerned, was actually 1999. That is, back when this five men group was at its peak.', + }, + { + title: 'CSPC: NSYNC Popularity Analysis - ChartMasters', + snippet: + "↓ Skip to Main Content\n\nMusic industry – One step closer to being accurate\n\nCSPC: NSYNC Popularity Analysis\n\nMJD Posted on February 9, 2018 Posted in CSPC 27 Comments Tagged with Boy band, N'Sync\n\nAt the turn of the millennium three teen acts were huge in the US, the Backstreet Boys, Britney Spears and NSYNC. The latter is the only one we haven’t study so far. It took 15 years and Adele to break their record of 2,4 million units sold of No Strings Attached in its first week alone.\n\nIt wasn’t a fluke, as the second fastest selling album of the Soundscan era prior 2015, was also theirs since Celebrity debuted with 1,88 million units sold.", + }, + { + title: 'CSPC: Backstreet Boys Popularity Analysis - ChartMasters', + snippet: + ' 1997, 1998, 2000 and 2001 also rank amongst some of the very best years.\n\nYet the way many music consumers – especially teenagers and young women’s – embraced their output deserves its own chapter. If Jonas Brothers and more recently One Direction reached a great level of popularity during the past decade, the type of success achieved by Backstreet Boys is in a completely different level as they really dominated the business for a few years all over the world, including in some countries that were traditionally hard to penetrate for Western artists.\n\nWe will try to analyze the extent of that hegemony with this new article with final results which will more than surprise many readers.', + }, + { + title: 'CSPC: NSYNC Popularity Analysis - ChartMasters', + snippet: + ' Was the teen group led by Justin Timberlake really that big? Was it only in the US where they found success? Or were they a global phenomenon?\n\nAs usual, I’ll be using the Commensurate Sales to Popularity Concept in order to relevantly gauge their results. This concept will not only bring you sales information for all NSYNC‘s albums, physical and download singles, as well as audio and video streaming, but it will also determine their true popularity. If you are not yet familiar with the CSPC method, the next page explains it with a short video. I fully recommend watching the video before getting into the sales figures.', + }, + ], + }); + + console.log(response); +})(); diff --git a/snippets/node/chat-post/stream.ts b/snippets/node/chat-post/stream.ts new file mode 100644 index 00000000..19eac1a1 --- /dev/null +++ b/snippets/node/chat-post/stream.ts @@ -0,0 +1,26 @@ +const { CohereClient } = require('cohere-ai'); + +const cohere = new CohereClient({ + token: '<>', +}); + +(async () => { + const chatStream = await cohere.chatStream({ + chatHistory: [ + { role: 'USER', message: 'Who discovered gravity?' }, + { + role: 'CHATBOT', + message: 'The man who is widely credited with discovering gravity is Sir Isaac Newton', + }, + ], + message: 'What year was he born?', + // perform web search before answering the question. You can also use your own custom connector. + connectors: [{ id: 'web-search' }], + }); + + for await (const message of chatStream) { + if (message.eventType === 'text-generation') { + process.stdout.write(message); + } + } +})(); diff --git a/snippets/node/chat-post/tools.ts b/snippets/node/chat-post/tools.ts new file mode 100644 index 00000000..bc46589e --- /dev/null +++ b/snippets/node/chat-post/tools.ts @@ -0,0 +1,40 @@ +const { CohereClient } = require('cohere-ai'); + +const cohere = new CohereClient({ + token: '<>', +}); + +(async () => { + const response = await cohere.chat({ + message: + "Can you provide a sales summary for 29th September 2023, and also give me some details about the products in the 'Electronics' category, for example their prices and stock levels?", + tools: [ + { + name: 'query_daily_sales_report', + description: + 'Connects to a database to retrieve overall sales volumes and sales information for a given day.', + parameterDefinitions: { + day: { + description: 'Retrieves sales data for this day, formatted as YYYY-MM-DD.', + type: 'str', + required: true, + }, + }, + }, + { + name: 'query_product_catalog', + description: + 'Connects to a a product catalog with information about all the products being sold, including categories, prices, and stock levels.', + parameterDefinitions: { + category: { + description: 'Retrieves product information data for all products in this category.', + type: 'str', + required: true, + }, + }, + }, + ], + }); + + console.log(response); +})(); diff --git a/snippets/node/classify-post.ts b/snippets/node/classify-post.ts new file mode 100644 index 00000000..4ad3ed03 --- /dev/null +++ b/snippets/node/classify-post.ts @@ -0,0 +1,25 @@ +const { CohereClient } = require('cohere-ai'); + +const cohere = new CohereClient({ + token: '<>', +}); + +(async () => { + const classify = await cohere.classify({ + examples: [ + { text: "Dermatologists don't like her!", label: 'Spam' }, + { text: "'Hello, open to this?'", label: 'Spam' }, + { text: 'I need help please wire me $1000 right now', label: 'Spam' }, + { text: 'Nice to know you ;)', label: 'Spam' }, + { text: 'Please help me?', label: 'Spam' }, + { text: 'Your parcel will be delivered today', label: 'Not spam' }, + { text: 'Review changes to our Terms and Conditions', label: 'Not spam' }, + { text: 'Weekly sync notes', label: 'Not spam' }, + { text: "'Re: Follow up from today's meeting'", label: 'Not spam' }, + { text: 'Pre-read for tomorrow', label: 'Not spam' }, + ], + inputs: ['Confirm your email address', 'hey i need u to send some $'], + }); + + console.log(classify); +})(); diff --git a/snippets/node/connector-create.ts b/snippets/node/connector-create.ts new file mode 100644 index 00000000..7924d981 --- /dev/null +++ b/snippets/node/connector-create.ts @@ -0,0 +1,15 @@ +const { CohereClient } = require('cohere-ai'); + +const cohere = new CohereClient({ + token: '<>', +}); + +(async () => { + const connector = await cohere.connectors.create({ + name: 'test-connector', + url: 'https://example.com/search', + description: 'A test connector', + }); + + console.log(connector); +})(); diff --git a/snippets/node/connector-delete.ts b/snippets/node/connector-delete.ts new file mode 100644 index 00000000..a22471e4 --- /dev/null +++ b/snippets/node/connector-delete.ts @@ -0,0 +1,9 @@ +const { CohereClient } = require('cohere-ai'); + +const cohere = new CohereClient({ + token: '<>', +}); + +(async () => { + await cohere.connectors.delete('connector-id'); +})(); diff --git a/snippets/node/connector-get.ts b/snippets/node/connector-get.ts new file mode 100644 index 00000000..e7f53fc3 --- /dev/null +++ b/snippets/node/connector-get.ts @@ -0,0 +1,11 @@ +const { CohereClient } = require('cohere-ai'); + +const cohere = new CohereClient({ + token: '<>', +}); + +(async () => { + const connector = await cohere.connectors.get('connector-id'); + + console.log(connector); +})(); diff --git a/snippets/node/connector-patch.ts b/snippets/node/connector-patch.ts new file mode 100644 index 00000000..ed3f8f9d --- /dev/null +++ b/snippets/node/connector-patch.ts @@ -0,0 +1,14 @@ +const { CohereClient } = require('cohere-ai'); + +const cohere = new CohereClient({ + token: '<>', +}); + +(async () => { + const connector = await cohere.connectors.update(connector.id, { + name: 'test-connector-renamed', + description: 'A test connector renamed', + }); + + console.log(connector); +})(); diff --git a/snippets/node/connectors-id-oauth-authorize-post.ts b/snippets/node/connectors-id-oauth-authorize-post.ts new file mode 100644 index 00000000..cce7182a --- /dev/null +++ b/snippets/node/connectors-id-oauth-authorize-post.ts @@ -0,0 +1,13 @@ +const { CohereClient } = require('cohere-ai'); + +const cohere = new CohereClient({ + token: '<>', +}); + +(async () => { + const connector = await cohere.connectors.oAuthAuthorize('connector-id', { + redirect_uri: 'https://example.com/oauth/callback', + }); + + console.log(connector); +})(); diff --git a/snippets/node/connectors-list.ts b/snippets/node/connectors-list.ts new file mode 100644 index 00000000..9c7485fc --- /dev/null +++ b/snippets/node/connectors-list.ts @@ -0,0 +1,11 @@ +const { CohereClient } = require('cohere-ai'); + +const cohere = new CohereClient({ + token: '<>', +}); + +(async () => { + const connectors = await cohere.connectors.list(); + + console.log(connectors); +})(); diff --git a/snippets/node/dataset-get.ts b/snippets/node/dataset-get.ts new file mode 100644 index 00000000..22b60ede --- /dev/null +++ b/snippets/node/dataset-get.ts @@ -0,0 +1,11 @@ +const { CohereClient } = require('cohere-ai'); + +const cohere = new CohereClient({ + token: '<>', +}); + +(async () => { + const datasets = await cohere.datasets.get('<>'); + + console.log(datasets); +})(); diff --git a/snippets/node/dataset-post.ts b/snippets/node/dataset-post.ts new file mode 100644 index 00000000..ec52b76a --- /dev/null +++ b/snippets/node/dataset-post.ts @@ -0,0 +1,14 @@ +const { CohereClient } = require('cohere-ai'); +const fs = require('fs'); + +const cohere = new CohereClient({ + token: '<>', +}); + +(async () => { + const file = fs.createReadStream('embed_jobs_sample_data.jsonl'); // {"text": "The quick brown fox jumps over the lazy dog"} + + const dataset = await cohere.datasets.create({ name: 'my-dataset', type: 'embed-input' }, file); + + console.log(dataset); +})(); diff --git a/snippets/node/dataset-usage-get.ts b/snippets/node/dataset-usage-get.ts new file mode 100644 index 00000000..9a0d9e68 --- /dev/null +++ b/snippets/node/dataset-usage-get.ts @@ -0,0 +1,11 @@ +const { CohereClient } = require('cohere-ai'); + +const cohere = new CohereClient({ + token: '<>', +}); + +(async () => { + const usage = await cohere.datasets.getUsage('id'); + + console.log(usage); +})(); diff --git a/snippets/node/detokenize-post.ts b/snippets/node/detokenize-post.ts new file mode 100644 index 00000000..292be4a0 --- /dev/null +++ b/snippets/node/detokenize-post.ts @@ -0,0 +1,14 @@ +const { CohereClient } = require('cohere-ai'); + +const cohere = new CohereClient({ + token: '<>', +}); + +(async () => { + const detokenize = await cohere.detokenize({ + tokens: [10002, 2261, 2012, 8, 2792, 43], + model: 'command', + }); + + console.log(detokenize); +})(); diff --git a/snippets/node/embed-jobs-cancel.ts b/snippets/node/embed-jobs-cancel.ts new file mode 100644 index 00000000..549fda5c --- /dev/null +++ b/snippets/node/embed-jobs-cancel.ts @@ -0,0 +1,11 @@ +const { CohereClient } = require('cohere-ai'); + +const cohere = new CohereClient({ + token: '<>', +}); + +(async () => { + const embedJob = await cohere.embedJobs.cancel('job_id'); + + console.log(embedJob); +})(); diff --git a/snippets/node/embed-jobs-get.ts b/snippets/node/embed-jobs-get.ts new file mode 100644 index 00000000..d53caf97 --- /dev/null +++ b/snippets/node/embed-jobs-get.ts @@ -0,0 +1,11 @@ +const { CohereClient } = require('cohere-ai'); + +const cohere = new CohereClient({ + token: '<>', +}); + +(async () => { + const embedJobs = await cohere.embedJobs.list(); + + console.log(embedJobs); +})(); diff --git a/snippets/node/embed-jobs-post.ts b/snippets/node/embed-jobs-post.ts new file mode 100644 index 00000000..688165ce --- /dev/null +++ b/snippets/node/embed-jobs-post.ts @@ -0,0 +1,15 @@ +const { CohereClient } = require('cohere-ai'); + +const cohere = new CohereClient({ + token: '<>', +}); + +(async () => { + const embedJob = await cohere.embedJobs.create({ + datasetId: 'my-dataset', + inputType: 'search_document', + model: 'embed-english-v3.0', + }); + + console.log(embedJob); +})(); diff --git a/snippets/node/embed-post.ts b/snippets/node/embed-post.ts new file mode 100644 index 00000000..8cc3bdc3 --- /dev/null +++ b/snippets/node/embed-post.ts @@ -0,0 +1,14 @@ +const { CohereClient } = require('cohere-ai'); + +const cohere = new CohereClient({ + token: '<>', +}); + +(async () => { + const embed = await cohere.embed({ + texts: ['hello', 'goodbye'], + model: 'embed-english-v3.0', + inputType: 'classification', + }); + console.log(embed); +})(); diff --git a/snippets/node/emebed-jobs-get.ts b/snippets/node/emebed-jobs-get.ts new file mode 100644 index 00000000..6e7a098f --- /dev/null +++ b/snippets/node/emebed-jobs-get.ts @@ -0,0 +1,11 @@ +const { CohereClient } = require('cohere-ai'); + +const cohere = new CohereClient({ + token: '<>', +}); + +(async () => { + const embedJob = await cohere.embedJobs.get('job_id'); + + console.log(embedJob); +})(); diff --git a/snippets/node/finetuning/create-finetuned-model.ts b/snippets/node/finetuning/create-finetuned-model.ts new file mode 100644 index 00000000..51f2046e --- /dev/null +++ b/snippets/node/finetuning/create-finetuned-model.ts @@ -0,0 +1,19 @@ +const { Cohere, CohereClient } = require('cohere-ai'); + +const cohere = new CohereClient({ + token: '<>', +}); + +(async () => { + const finetunedModel = await cohere.finetuning.createFinetunedModel({ + name: 'test-finetuned-model', + settings: { + base_model: { + base_type: Cohere.Finetuning.BaseType.BaseTypeGenerative, + }, + dataset_id: 'test-dataset-id', + }, + }); + + console.log(finetunedModel); +})(); diff --git a/snippets/node/finetuning/delete-finetuned-model.ts b/snippets/node/finetuning/delete-finetuned-model.ts new file mode 100644 index 00000000..ab2196c4 --- /dev/null +++ b/snippets/node/finetuning/delete-finetuned-model.ts @@ -0,0 +1,9 @@ +const { CohereClient } = require('cohere-ai'); + +const cohere = new CohereClient({ + token: '<>', +}); + +(async () => { + await cohere.finetuning.deleteFinetunedModel('test-id'); +})(); diff --git a/snippets/node/finetuning/get-finetuned-model.ts b/snippets/node/finetuning/get-finetuned-model.ts new file mode 100644 index 00000000..145d7e99 --- /dev/null +++ b/snippets/node/finetuning/get-finetuned-model.ts @@ -0,0 +1,11 @@ +const { CohereClient } = require('cohere-ai'); + +const cohere = new CohereClient({ + token: '<>', +}); + +(async () => { + const finetunedModel = await cohere.finetuning.getFinetunedModel('test-id'); + + console.log(finetunedModel); +})(); diff --git a/snippets/node/finetuning/list-events.ts b/snippets/node/finetuning/list-events.ts new file mode 100644 index 00000000..80f67147 --- /dev/null +++ b/snippets/node/finetuning/list-events.ts @@ -0,0 +1,11 @@ +const { CohereClient } = require('cohere-ai'); + +const cohere = new CohereClient({ + token: '<>', +}); + +(async () => { + const events = await cohere.finetuning.listEvents('test-finetuned-model-id'); + + console.log(events); +})(); diff --git a/snippets/node/finetuning/list-finetuned-models.ts b/snippets/node/finetuning/list-finetuned-models.ts new file mode 100644 index 00000000..533b8691 --- /dev/null +++ b/snippets/node/finetuning/list-finetuned-models.ts @@ -0,0 +1,11 @@ +const { CohereClient } = require('cohere-ai'); + +const cohere = new CohereClient({ + token: '<>', +}); + +(async () => { + const finetunedModels = await cohere.finetuning.listFinetunedModels(); + + console.log(finetunedModels); +})(); diff --git a/snippets/node/finetuning/list-training-step-metrics.ts b/snippets/node/finetuning/list-training-step-metrics.ts new file mode 100644 index 00000000..c2f637db --- /dev/null +++ b/snippets/node/finetuning/list-training-step-metrics.ts @@ -0,0 +1,13 @@ +const { CohereClient } = require('cohere-ai'); + +const cohere = new CohereClient({ + token: '<>', +}); + +(async () => { + const trainingStepMetrics = await cohere.finetuning.listTrainingStepMetrics( + 'test-finetuned-model-id' + ); + + console.log(trainingStepMetrics); +})(); diff --git a/snippets/node/finetuning/update-finetuned-model.ts b/snippets/node/finetuning/update-finetuned-model.ts new file mode 100644 index 00000000..d11c6485 --- /dev/null +++ b/snippets/node/finetuning/update-finetuned-model.ts @@ -0,0 +1,13 @@ +const { CohereClient } = require('cohere-ai'); + +const cohere = new CohereClient({ + token: '<>', +}); + +(async () => { + const finetunedModel = await cohere.finetuning.updateFinetunedModel('test-id', { + name: 'new name', + }); + + console.log(finetunedModel); +})(); diff --git a/snippets/node/generate-post.ts b/snippets/node/generate-post.ts new file mode 100644 index 00000000..41288405 --- /dev/null +++ b/snippets/node/generate-post.ts @@ -0,0 +1,13 @@ +const { CohereClient } = require('cohere-ai'); + +const cohere = new CohereClient({ + token: '<>', +}); + +(async () => { + const generate = await cohere.generate({ + prompt: 'Please explain to me how LLMs work', + }); + + console.log(generate); +})(); diff --git a/snippets/node/models-list-get.ts b/snippets/node/models-list-get.ts new file mode 100644 index 00000000..7339b552 --- /dev/null +++ b/snippets/node/models-list-get.ts @@ -0,0 +1,11 @@ +const { CohereClient } = require('cohere-ai'); + +const cohere = new CohereClient({ + token: '<>', +}); + +(async () => { + const models = await cohere.models.list(); + + console.log(models); +})(); diff --git a/snippets/node/rerank-post.ts b/snippets/node/rerank-post.ts new file mode 100644 index 00000000..497dc675 --- /dev/null +++ b/snippets/node/rerank-post.ts @@ -0,0 +1,30 @@ +const { CohereClient } = require('cohere-ai'); + +const cohere = new CohereClient({ + token: '<>', +}); + +(async () => { + const rerank = await cohere.rerank({ + documents: [ + { text: 'Carson City is the capital city of the American state of Nevada.' }, + { + text: 'The Commonwealth of the Northern Mariana Islands is a group of islands in the Pacific Ocean. Its capital is Saipan.', + }, + { + text: 'Capitalization or capitalisation in English grammar is the use of a capital letter at the start of a word. English usage varies from capitalization in other languages.', + }, + { + text: 'Washington, D.C. (also known as simply Washington or D.C., and officially as the District of Columbia) is the capital of the United States. It is a federal district.', + }, + { + text: 'Capital punishment (the death penalty) has existed in the United States since beforethe United States was a country. As of 2017, capital punishment is legal in 30 of the 50 states.', + }, + ], + query: 'What is the capital of the United States?', + topN: 3, + model: 'rerank-english-v3.0', + }); + + console.log(rerank); +})(); diff --git a/snippets/node/summarize-post.ts b/snippets/node/summarize-post.ts new file mode 100644 index 00000000..6a809b92 --- /dev/null +++ b/snippets/node/summarize-post.ts @@ -0,0 +1,33 @@ +const { CohereClient } = require('cohere-ai'); + +const cohere = new CohereClient({ + token: '<>', +}); + +(async () => { + const summarize = await cohere.summarize({ + text: + 'Ice cream is a sweetened frozen food typically eaten as a snack or dessert. ' + + 'It may be made from milk or cream and is flavoured with a sweetener, ' + + 'either sugar or an alternative, and a spice, such as cocoa or vanilla, ' + + 'or with fruit such as strawberries or peaches. ' + + 'It can also be made by whisking a flavored cream base and liquid nitrogen together. ' + + 'Food coloring is sometimes added, in addition to stabilizers. ' + + 'The mixture is cooled below the freezing point of water and stirred to incorporate air spaces ' + + 'and to prevent detectable ice crystals from forming. The result is a smooth, ' + + 'semi-solid foam that is solid at very low temperatures (below 2 °C or 35 °F). ' + + 'It becomes more malleable as its temperature increases.\n\n' + + 'The meaning of the name "ice cream" varies from one country to another. ' + + 'In some countries, such as the United States, "ice cream" applies only to a specific variety, ' + + 'and most governments regulate the commercial use of the various terms according to the ' + + 'relative quantities of the main ingredients, notably the amount of cream. ' + + 'Products that do not meet the criteria to be called ice cream are sometimes labelled ' + + '"frozen dairy dessert" instead. In other countries, such as Italy and Argentina, ' + + 'one word is used fo\r all variants. Analogues made from dairy alternatives, ' + + "such as goat's or sheep's milk, or milk substitutes " + + '(e.g., soy, cashew, coconut, almond milk or tofu), are available for those who are ' + + 'lactose intolerant, allergic to dairy protein or vegan.', + }); + + console.log(summarize); +})(); diff --git a/snippets/node/tokenize-post.ts b/snippets/node/tokenize-post.ts new file mode 100644 index 00000000..837532e9 --- /dev/null +++ b/snippets/node/tokenize-post.ts @@ -0,0 +1,8 @@ +const cohere = require('cohere-ai'); +cohere.init('<>')(async () => { + const response = await cohere.tokenize({ + text: 'tokenize me! :D', + model: 'command', // optional + }); + console.log(response); +})(); diff --git a/snippets/python-async/chat-post.py b/snippets/python-async/chat-post.py new file mode 100644 index 00000000..3981559b --- /dev/null +++ b/snippets/python-async/chat-post.py @@ -0,0 +1,21 @@ +import cohere +import asyncio + +co = cohere.AsyncClient("<>") + + +async def main(): + return await co.chat( + chat_history=[ + {"role": "USER", "message": "Who discovered gravity?"}, + { + "role": "CHATBOT", + "message": "The man who is widely credited with discovering gravity is Sir Isaac Newton", + }, + ], + message="What year was he born?", + # perform web search before answering the question. You can also use your own custom connector. + connectors=[{"id": "web-search"}], + ) + +asyncio.run(main()) diff --git a/snippets/python-async/classify-post.py b/snippets/python-async/classify-post.py new file mode 100644 index 00000000..c118a367 --- /dev/null +++ b/snippets/python-async/classify-post.py @@ -0,0 +1,36 @@ +import cohere +import asyncio +from cohere import ClassifyExample + +co = cohere.AsyncClient("<>") +examples = [ + ClassifyExample(text="Dermatologists don't like her!", label="Spam"), + ClassifyExample(text="'Hello, open to this?'", label="Spam"), + ClassifyExample( + text="I need help please wire me $1000 right now", label="Spam"), + ClassifyExample(text="Nice to know you ;)", label="Spam"), + ClassifyExample(text="Please help me?", label="Spam"), + ClassifyExample(text="Your parcel will be delivered today", + label="Not spam"), + ClassifyExample( + text="Review changes to our Terms and Conditions", label="Not spam" + ), + ClassifyExample(text="Weekly sync notes", label="Not spam"), + ClassifyExample(text="'Re: Follow up from today's meeting'", + label="Not spam"), + ClassifyExample(text="Pre-read for tomorrow", label="Not spam"), +] +inputs = [ + "Confirm your email address", + "hey i need u to send some $", +] + + +async def main(): + response = await co.classify( + inputs=inputs, + examples=examples, + ) + print(response) + +asyncio.run(main()) diff --git a/snippets/python-async/connector-create.py b/snippets/python-async/connector-create.py new file mode 100644 index 00000000..5355da39 --- /dev/null +++ b/snippets/python-async/connector-create.py @@ -0,0 +1,14 @@ +import cohere +import asyncio + +co = cohere.AsyncClient("<>") + + +async def main(): + response = await co.connectors.create( + name="Example connector", + url="https://connector-example.com/search", + ) + print(response) + +asyncio.run(main()) diff --git a/snippets/python-async/connector-delete.py b/snippets/python-async/connector-delete.py new file mode 100644 index 00000000..676bfa7b --- /dev/null +++ b/snippets/python-async/connector-delete.py @@ -0,0 +1,10 @@ +import cohere +import asyncio + +co = cohere.AsyncClient("<>") + + +async def main(): + await co.connectors.delete("test-id") + +asyncio.run(main()) diff --git a/snippets/python-async/connector-get.py b/snippets/python-async/connector-get.py new file mode 100644 index 00000000..c317a3b9 --- /dev/null +++ b/snippets/python-async/connector-get.py @@ -0,0 +1,11 @@ +import cohere +import asyncio + +co = cohere.AsyncClient("<>") + + +async def main(): + response = await co.connectors.get("test-id") + print(response) + +asyncio.run(main()) diff --git a/snippets/python-async/connector-patch.py b/snippets/python-async/connector-patch.py new file mode 100644 index 00000000..4ed5258c --- /dev/null +++ b/snippets/python-async/connector-patch.py @@ -0,0 +1,13 @@ +import cohere +import asyncio + +co = cohere.AsyncClient("<>") + + +async def main(): + response = await co.connectors.update( + connector_id="test-id", name="new name", url="https://example.com/search" + ) + print(response) + +asyncio.run(main()) diff --git a/snippets/python-async/connectors-id-oauth-authorize-post.py b/snippets/python-async/connectors-id-oauth-authorize-post.py new file mode 100644 index 00000000..1811eb7a --- /dev/null +++ b/snippets/python-async/connectors-id-oauth-authorize-post.py @@ -0,0 +1,13 @@ +import cohere +import asyncio + +co = cohere.AsyncClient("<>") + + +async def main(): + response = await co.connectors.o_auth_authorize( + connector_id="test-id", after_token_redirect="https://test.com" + ) + print(response) + +asyncio.run(main()) diff --git a/snippets/python-async/connectors-list.py b/snippets/python-async/connectors-list.py new file mode 100644 index 00000000..136958b1 --- /dev/null +++ b/snippets/python-async/connectors-list.py @@ -0,0 +1,11 @@ +import cohere +import asyncio + +co = cohere.AsyncClient("<>") + + +async def main(): + response = await co.connectors.list() + print(response) + +asyncio.run(main()) diff --git a/snippets/python-async/dataset-delete.py b/snippets/python-async/dataset-delete.py new file mode 100644 index 00000000..31a4f9b9 --- /dev/null +++ b/snippets/python-async/dataset-delete.py @@ -0,0 +1,10 @@ +import cohere +import asyncio + +co = cohere.AsyncClient("<>") + + +async def main(): + await co.delete_dataset("id") + +asyncio.run(main()) diff --git a/snippets/python-async/dataset-get.py b/snippets/python-async/dataset-get.py new file mode 100644 index 00000000..b9331f64 --- /dev/null +++ b/snippets/python-async/dataset-get.py @@ -0,0 +1,12 @@ +import cohere +import asyncio + +co = cohere.AsyncClient("<>") + + +async def main(): + response = await co.datasets.get(id="<>") + + print(response) + +asyncio.run(main()) diff --git a/snippets/python-async/dataset-post.py b/snippets/python-async/dataset-post.py new file mode 100644 index 00000000..b5dcc572 --- /dev/null +++ b/snippets/python-async/dataset-post.py @@ -0,0 +1,21 @@ +import cohere +import asyncio + +co = cohere.AsyncClient("<>") + + +async def main(): + + # upload a dataset + response = await co.datasets.create( + name="prompt-completion-dataset", + data=open("./prompt-completion.jsonl", "rb"), + type="prompt-completion-finetune-input", + ) + + # wait for validation to complete + response = await co.wait(response) + + print(response) + +asyncio.run(main()) diff --git a/snippets/python-async/dataset-usage-get.py b/snippets/python-async/dataset-usage-get.py new file mode 100644 index 00000000..0e70b886 --- /dev/null +++ b/snippets/python-async/dataset-usage-get.py @@ -0,0 +1,12 @@ +import cohere +import asyncio + +co = cohere.AsyncClient("<>") + + +async def main(): + response = await co.datasets.get_usage() + + print(response) + +asyncio.run(main()) diff --git a/snippets/python-async/detokenize-post.py b/snippets/python-async/detokenize-post.py new file mode 100644 index 00000000..0dc997c4 --- /dev/null +++ b/snippets/python-async/detokenize-post.py @@ -0,0 +1,13 @@ +import cohere +import asyncio + +co = cohere.AsyncClient("<>") + + +async def main(): + response = await co.detokenize( + tokens=[8466, 5169, 2594, 8, 2792, 43], model="command" # optional + ) + print(response) + +asyncio.run(main()) diff --git a/snippets/python-async/embed-jobs-cancel.py b/snippets/python-async/embed-jobs-cancel.py new file mode 100644 index 00000000..568a41a2 --- /dev/null +++ b/snippets/python-async/embed-jobs-cancel.py @@ -0,0 +1,8 @@ +import cohere +import asyncio + +co = cohere.AsyncClient("<>") + + +async def main(): + await co.embed_jobs.cancel("job_id") diff --git a/snippets/python-async/embed-jobs-get.py b/snippets/python-async/embed-jobs-get.py new file mode 100644 index 00000000..1e239d29 --- /dev/null +++ b/snippets/python-async/embed-jobs-get.py @@ -0,0 +1,12 @@ +import cohere +import asyncio + +co = cohere.AsyncClient("<>") + + +async def main(): + response = await co.embed_jobs.list() + + print(response) + +asyncio.run(main()) diff --git a/snippets/python-async/embed-jobs-post.py b/snippets/python-async/embed-jobs-post.py new file mode 100644 index 00000000..f49580c9 --- /dev/null +++ b/snippets/python-async/embed-jobs-post.py @@ -0,0 +1,18 @@ +import cohere +import asyncio + +co = cohere.AsyncClient("<>") + + +async def main(): + # start an embed job + response = await co.embed_jobs.create( + dataset_id=ds.id, input_type="search_document", model="embed-english-v3.0" + ) + + # poll the server until the job is complete + response = await co.wait(job) + + print(response) + +asyncio.run(main()) diff --git a/snippets/python-async/embed-post.py b/snippets/python-async/embed-post.py new file mode 100644 index 00000000..643b810e --- /dev/null +++ b/snippets/python-async/embed-post.py @@ -0,0 +1,13 @@ +import cohere +import asyncio + +co = cohere.AsyncClient("<>") + + +async def main(): + response = await co.embed( + texts=["hello", "goodbye"], model="embed-english-v3.0", input_type="classification" + ) + print(response) + +asyncio.run(main()) diff --git a/snippets/python-async/emebed-jobs-get.py b/snippets/python-async/emebed-jobs-get.py new file mode 100644 index 00000000..e5de8969 --- /dev/null +++ b/snippets/python-async/emebed-jobs-get.py @@ -0,0 +1,12 @@ +import cohere +import asyncio + +co = cohere.AsyncClient("<>") + + +async def main(): + response = await co.embed_jobs.get("job_id") + + print(response) + +asyncio.run(main()) diff --git a/snippets/python-async/finetuning/create-finetuned-model.py b/snippets/python-async/finetuning/create-finetuned-model.py new file mode 100644 index 00000000..eea9e7dd --- /dev/null +++ b/snippets/python-async/finetuning/create-finetuned-model.py @@ -0,0 +1,27 @@ +from cohere.finetuning import ( + BaseModel, + BaseType, + FinetunedModel, + Settings, +) +import cohere +import asyncio + +co = cohere.AsyncClient("<>") + + +async def main(): + response = await co.finetuning.create_finetuned_model( + request=FinetunedModel( + name="test-finetuned-model", + settings=Settings( + base_model=BaseModel( + base_type=BaseType.BASE_TYPE_GENERATIVE, + ), + dataset_id="my-dataset-id", + ), + ) + ) + print(response) + +asyncio.run(main()) diff --git a/snippets/python-async/finetuning/delete-finetuned-model.py b/snippets/python-async/finetuning/delete-finetuned-model.py new file mode 100644 index 00000000..5fecc852 --- /dev/null +++ b/snippets/python-async/finetuning/delete-finetuned-model.py @@ -0,0 +1,10 @@ +import cohere +import asyncio + +co = cohere.AsyncClient("<>") + + +async def main(): + await co.finetuning.delete_finetuned_model("test-id") + +asyncio.run(main()) diff --git a/snippets/python-async/finetuning/get-finetuned-model.py b/snippets/python-async/finetuning/get-finetuned-model.py new file mode 100644 index 00000000..6cbcfef4 --- /dev/null +++ b/snippets/python-async/finetuning/get-finetuned-model.py @@ -0,0 +1,11 @@ +import cohere +import asyncio + +co = cohere.AsyncClient("<>") + + +async def main(): + response = await co.finetuning.get_finetuned_model("test-id") + print(response) + +asyncio.run(main()) diff --git a/snippets/python-async/finetuning/list-events.py b/snippets/python-async/finetuning/list-events.py new file mode 100644 index 00000000..6a02332b --- /dev/null +++ b/snippets/python-async/finetuning/list-events.py @@ -0,0 +1,11 @@ +import cohere +import asyncio + +co = cohere.AsyncClient("<>") + + +async def main(): + response = await co.finetuning.list_events(finetuned_model_id="test-id") + print(response) + +asyncio.run(main()) diff --git a/snippets/python-async/finetuning/list-finetuned-models.py b/snippets/python-async/finetuning/list-finetuned-models.py new file mode 100644 index 00000000..6821318b --- /dev/null +++ b/snippets/python-async/finetuning/list-finetuned-models.py @@ -0,0 +1,11 @@ +import cohere +import asyncio + +co = cohere.AsyncClient("<>") + + +async def main(): + response = await co.finetuning.list_finetuned_models() + print(response) + +asyncio.run(main()) diff --git a/snippets/python-async/finetuning/list-training-step-metrics.py b/snippets/python-async/finetuning/list-training-step-metrics.py new file mode 100644 index 00000000..6006478e --- /dev/null +++ b/snippets/python-async/finetuning/list-training-step-metrics.py @@ -0,0 +1,11 @@ +import cohere +import asyncio + +co = cohere.AsyncClient("<>") + + +async def main(): + response = await co.finetuning.list_train_step_metrics(finetuned_model_id="test-id") + print(response) + +asyncio.run(main()) diff --git a/snippets/python-async/finetuning/update-finetuned-model.py b/snippets/python-async/finetuning/update-finetuned-model.py new file mode 100644 index 00000000..7caa106c --- /dev/null +++ b/snippets/python-async/finetuning/update-finetuned-model.py @@ -0,0 +1,11 @@ +import cohere +import asyncio + +co = cohere.AsyncClient("<>") + + +async def main(): + response = await co.finetuning.update_finetuned_model(id="test-id", name="new name") + print(response) + +asyncio.run(main()) diff --git a/snippets/python-async/generate-post.py b/snippets/python-async/generate-post.py new file mode 100644 index 00000000..540e93c7 --- /dev/null +++ b/snippets/python-async/generate-post.py @@ -0,0 +1,13 @@ +import cohere +import asyncio + +co = cohere.AsyncClient("<>") + + +async def main(): + response = await co.generate( + prompt="Please explain to me how LLMs work", + ) + print(response) + +asyncio.run(main()) diff --git a/snippets/python-async/models-list-get.py b/snippets/python-async/models-list-get.py new file mode 100644 index 00000000..476725f5 --- /dev/null +++ b/snippets/python-async/models-list-get.py @@ -0,0 +1,11 @@ +import cohere +import asyncio + +co = cohere.AsyncClient("<>") + + +async def main(): + response = await co.models.list() + print(response) + +asyncio.run(main()) diff --git a/snippets/python-async/rerank-post.py b/snippets/python-async/rerank-post.py new file mode 100644 index 00000000..8dcd9e0b --- /dev/null +++ b/snippets/python-async/rerank-post.py @@ -0,0 +1,24 @@ +import cohere +import asyncio + +co = cohere.AsyncClient("<>") + +docs = [ + "Carson City is the capital city of the American state of Nevada.", + "The Commonwealth of the Northern Mariana Islands is a group of islands in the Pacific Ocean. Its capital is Saipan.", + "Capitalization or capitalisation in English grammar is the use of a capital letter at the start of a word. English usage varies from capitalization in other languages.", + "Washington, D.C. (also known as simply Washington or D.C., and officially as the District of Columbia) is the capital of the United States. It is a federal district.", + "Capital punishment (the death penalty) has existed in the United States since beforethe United States was a country. As of 2017, capital punishment is legal in 30 of the 50 states.", +] + + +async def main(): + response = await co.rerank( + model="rerank-english-v2.0", + query="What is the capital of the United States?", + documents=docs, + top_n=3, + ) + print(response) + +asyncio.run(main()) diff --git a/snippets/python-async/summarize-post.py b/snippets/python-async/summarize-post.py new file mode 100644 index 00000000..0c0d61ae --- /dev/null +++ b/snippets/python-async/summarize-post.py @@ -0,0 +1,36 @@ +import cohere +import asyncio + +co = cohere.AsyncClient("<>") + +text = ( + "Ice cream is a sweetened frozen food typically eaten as a snack or dessert. " + "It may be made from milk or cream and is flavoured with a sweetener, " + "either sugar or an alternative, and a spice, such as cocoa or vanilla, " + "or with fruit such as strawberries or peaches. " + "It can also be made by whisking a flavored cream base and liquid nitrogen together. " + "Food coloring is sometimes added, in addition to stabilizers. " + "The mixture is cooled below the freezing point of water and stirred to incorporate air spaces " + "and to prevent detectable ice crystals from forming. The result is a smooth, " + "semi-solid foam that is solid at very low temperatures (below 2 °C or 35 °F). " + "It becomes more malleable as its temperature increases.\n\n" + 'The meaning of the name "ice cream" varies from one country to another. ' + 'In some countries, such as the United States, "ice cream" applies only to a specific variety, ' + "and most governments regulate the commercial use of the various terms according to the " + "relative quantities of the main ingredients, notably the amount of cream. " + "Products that do not meet the criteria to be called ice cream are sometimes labelled " + '"frozen dairy dessert" instead. In other countries, such as Italy and Argentina, ' + "one word is used fo\r all variants. Analogues made from dairy alternatives, " + "such as goat's or sheep's milk, or milk substitutes " + "(e.g., soy, cashew, coconut, almond milk or tofu), are available for those who are " + "lactose intolerant, allergic to dairy protein or vegan." +) + + +async def main(): + response = await co.summarize( + text=text, + ) + print(response) + +asyncio.run(main()) diff --git a/snippets/python-async/tokenize-post.py b/snippets/python-async/tokenize-post.py new file mode 100644 index 00000000..00a838ca --- /dev/null +++ b/snippets/python-async/tokenize-post.py @@ -0,0 +1,11 @@ +import cohere +import asyncio + +co = cohere.AsyncClient("<>") + + +async def main(): + response = await co.tokenize(text="tokenize me! :D", model="command") + print(response) + +asyncio.run(main()) diff --git a/snippets/python/chat-post.py b/snippets/python/chat-post.py new file mode 100644 index 00000000..caeb25c9 --- /dev/null +++ b/snippets/python/chat-post.py @@ -0,0 +1,16 @@ +import cohere + +co = cohere.Client("<>") +response = co.chat( + chat_history=[ + {"role": "USER", "message": "Who discovered gravity?"}, + { + "role": "CHATBOT", + "message": "The man who is widely credited with discovering gravity is Sir Isaac Newton", + }, + ], + message="What year was he born?", + # perform web search before answering the question. You can also use your own custom connector. + connectors=[{"id": "web-search"}], +) +print(response) diff --git a/snippets/python/chat-post/default.py b/snippets/python/chat-post/default.py new file mode 100644 index 00000000..7f0340f4 --- /dev/null +++ b/snippets/python/chat-post/default.py @@ -0,0 +1,18 @@ +import cohere + +co = cohere.Client("<>") + +response = co.chat( + chat_history=[ + {"role": "USER", "message": "Who discovered gravity?"}, + { + "role": "CHATBOT", + "message": "The man who is widely credited with discovering gravity is Sir Isaac Newton", + }, + ], + message="What year was he born?", + # perform web search before answering the question. You can also use your own custom connector. + connectors=[{"id": "web-search"}], +) + +print(response) diff --git a/snippets/python/chat-post/documents.py b/snippets/python/chat-post/documents.py new file mode 100644 index 00000000..f4c5c0ce --- /dev/null +++ b/snippets/python/chat-post/documents.py @@ -0,0 +1,27 @@ +import cohere + +co = cohere.Client("<>") + +response = co.chat( + model="command", + message="Who is more popular: Nsync or Backstreet Boys?", + documents=[ + { + "title": "CSPC: Backstreet Boys Popularity Analysis - ChartMasters", + "snippet": "↓ Skip to Main Content\n\nMusic industry – One step closer to being accurate\n\nCSPC: Backstreet Boys Popularity Analysis\n\nHernán Lopez Posted on February 9, 2017 Posted in CSPC 72 Comments Tagged with Backstreet Boys, Boy band\n\nAt one point, Backstreet Boys defined success: massive albums sales across the globe, great singles sales, plenty of chart topping releases, hugely hyped tours and tremendous media coverage.\n\nIt is true that they benefited from extraordinarily good market conditions in all markets. After all, the all-time record year for the music business, as far as revenues in billion dollars are concerned, was actually 1999. That is, back when this five men group was at its peak." + }, + { + "title": "CSPC: NSYNC Popularity Analysis - ChartMasters", + "snippet": "↓ Skip to Main Content\n\nMusic industry – One step closer to being accurate\n\nCSPC: NSYNC Popularity Analysis\n\nMJD Posted on February 9, 2018 Posted in CSPC 27 Comments Tagged with Boy band, N'Sync\n\nAt the turn of the millennium three teen acts were huge in the US, the Backstreet Boys, Britney Spears and NSYNC. The latter is the only one we haven’t study so far. It took 15 years and Adele to break their record of 2,4 million units sold of No Strings Attached in its first week alone.\n\nIt wasn’t a fluke, as the second fastest selling album of the Soundscan era prior 2015, was also theirs since Celebrity debuted with 1,88 million units sold." + }, + { + "title": "CSPC: Backstreet Boys Popularity Analysis - ChartMasters", + "snippet": " 1997, 1998, 2000 and 2001 also rank amongst some of the very best years.\n\nYet the way many music consumers – especially teenagers and young women’s – embraced their output deserves its own chapter. If Jonas Brothers and more recently One Direction reached a great level of popularity during the past decade, the type of success achieved by Backstreet Boys is in a completely different level as they really dominated the business for a few years all over the world, including in some countries that were traditionally hard to penetrate for Western artists.\n\nWe will try to analyze the extent of that hegemony with this new article with final results which will more than surprise many readers." + }, + { + "title": "CSPC: NSYNC Popularity Analysis - ChartMasters", + "snippet": " Was the teen group led by Justin Timberlake really that big? Was it only in the US where they found success? Or were they a global phenomenon?\n\nAs usual, I’ll be using the Commensurate Sales to Popularity Concept in order to relevantly gauge their results. This concept will not only bring you sales information for all NSYNC‘s albums, physical and download singles, as well as audio and video streaming, but it will also determine their true popularity. If you are not yet familiar with the CSPC method, the next page explains it with a short video. I fully recommend watching the video before getting into the sales figures." + } + ]) + +print(response) diff --git a/snippets/python/chat-post/stream.py b/snippets/python/chat-post/stream.py new file mode 100644 index 00000000..08de1802 --- /dev/null +++ b/snippets/python/chat-post/stream.py @@ -0,0 +1,20 @@ +import cohere + +co = cohere.Client("<>") + +response = co.chat_stream( + chat_history=[ + {"role": "USER", "message": "Who discovered gravity?"}, + { + "role": "CHATBOT", + "message": "The man who is widely credited with discovering gravity is Sir Isaac Newton", + }, + ], + message="What year was he born?", + # perform web search before answering the question. You can also use your own custom connector. + connectors=[{"id": "web-search"}], +) + +for event in response: + if event.event_type == "text-generation": + print(event.text, end='') diff --git a/snippets/python/chat-post/tools.py b/snippets/python/chat-post/tools.py new file mode 100644 index 00000000..c84580a6 --- /dev/null +++ b/snippets/python/chat-post/tools.py @@ -0,0 +1,40 @@ +import cohere + +co = cohere.Client("<>") + +# tool descriptions that the model has access to +tools = [ + { + "name": "query_daily_sales_report", + "description": "Connects to a database to retrieve overall sales volumes and sales information for a given day.", + "parameter_definitions": { + "day": { + "description": "Retrieves sales data for this day, formatted as YYYY-MM-DD.", + "type": "str", + "required": True + } + } + }, + { + "name": "query_product_catalog", + "description": "Connects to a a product catalog with information about all the products being sold, including categories, prices, and stock levels.", + "parameter_definitions": { + "category": { + "description": "Retrieves product information data for all products in this category.", + "type": "str", + "required": True + } + } + } +] + + +# user request +message = "Can you provide a sales summary for 29th September 2023, and also give me some details about the products in the 'Electronics' category, for example their prices and stock levels?" + +response = co.chat( + message=message, + tools=tools, +) + +print(response) diff --git a/snippets/python/classify-post.py b/snippets/python/classify-post.py new file mode 100644 index 00000000..aa238a2f --- /dev/null +++ b/snippets/python/classify-post.py @@ -0,0 +1,30 @@ +import cohere +from cohere import ClassifyExample + +co = cohere.Client("<>") +examples = [ + ClassifyExample(text="Dermatologists don't like her!", label="Spam"), + ClassifyExample(text="'Hello, open to this?'", label="Spam"), + ClassifyExample( + text="I need help please wire me $1000 right now", label="Spam"), + ClassifyExample(text="Nice to know you ;)", label="Spam"), + ClassifyExample(text="Please help me?", label="Spam"), + ClassifyExample(text="Your parcel will be delivered today", + label="Not spam"), + ClassifyExample( + text="Review changes to our Terms and Conditions", label="Not spam" + ), + ClassifyExample(text="Weekly sync notes", label="Not spam"), + ClassifyExample(text="'Re: Follow up from today's meeting'", + label="Not spam"), + ClassifyExample(text="Pre-read for tomorrow", label="Not spam"), +] +inputs = [ + "Confirm your email address", + "hey i need u to send some $", +] +response = co.classify( + inputs=inputs, + examples=examples, +) +print(response) diff --git a/snippets/python/connector-create.py b/snippets/python/connector-create.py new file mode 100644 index 00000000..14c8b346 --- /dev/null +++ b/snippets/python/connector-create.py @@ -0,0 +1,8 @@ +import cohere + +co = cohere.Client("<>") +response = co.connectors.create( + name="Example connector", + url="https://connector-example.com/search", +) +print(response) diff --git a/snippets/python/connector-delete.py b/snippets/python/connector-delete.py new file mode 100644 index 00000000..39c0fc4c --- /dev/null +++ b/snippets/python/connector-delete.py @@ -0,0 +1,4 @@ +import cohere + +co = cohere.Client("<>") +co.connectors.delete("test-id") diff --git a/snippets/python/connector-get.py b/snippets/python/connector-get.py new file mode 100644 index 00000000..cb3dc1df --- /dev/null +++ b/snippets/python/connector-get.py @@ -0,0 +1,5 @@ +import cohere + +co = cohere.Client("<>") +response = co.connectors.get("test-id") +print(response) diff --git a/snippets/python/connector-patch.py b/snippets/python/connector-patch.py new file mode 100644 index 00000000..bd7a9149 --- /dev/null +++ b/snippets/python/connector-patch.py @@ -0,0 +1,7 @@ +import cohere + +co = cohere.Client("<>") +response = co.connectors.update( + connector_id="test-id", name="new name", url="https://example.com/search" +) +print(response) diff --git a/snippets/python/connectors-id-oauth-authorize-post.py b/snippets/python/connectors-id-oauth-authorize-post.py new file mode 100644 index 00000000..e7ee448e --- /dev/null +++ b/snippets/python/connectors-id-oauth-authorize-post.py @@ -0,0 +1,7 @@ +import cohere + +co = cohere.Client("<>") +response = co.connectors.o_auth_authorize( + connector_id="test-id", after_token_redirect="https://test.com" +) +print(response) diff --git a/snippets/python/connectors-list.py b/snippets/python/connectors-list.py new file mode 100644 index 00000000..1411cff6 --- /dev/null +++ b/snippets/python/connectors-list.py @@ -0,0 +1,5 @@ +import cohere + +co = cohere.Client("<>") +response = co.connectors.list() +print(response) diff --git a/snippets/python/dataset-delete.py b/snippets/python/dataset-delete.py new file mode 100644 index 00000000..56b12470 --- /dev/null +++ b/snippets/python/dataset-delete.py @@ -0,0 +1,6 @@ +import cohere + +co = cohere.Client("<>") + +# delete dataset +co.datasets.delete("id") diff --git a/snippets/python/dataset-get.py b/snippets/python/dataset-get.py new file mode 100644 index 00000000..2ba0a5b7 --- /dev/null +++ b/snippets/python/dataset-get.py @@ -0,0 +1,8 @@ +import cohere + +co = cohere.Client("<>") + +# get dataset +response = co.datasets.get(id="<>") + +print(response) diff --git a/snippets/python/dataset-post.py b/snippets/python/dataset-post.py new file mode 100644 index 00000000..bf5d577c --- /dev/null +++ b/snippets/python/dataset-post.py @@ -0,0 +1,15 @@ +import cohere + +co = cohere.Client("<>") + +# upload a dataset +response = co.datasets.create( + name="prompt-completion-dataset", + data=open("./prompt-completion.jsonl", "rb"), + type="prompt-completion-finetune-input", +) + +# wait for validation to complete +response = co.wait(my_dataset) + +print(response) diff --git a/snippets/python/dataset-usage-get.py b/snippets/python/dataset-usage-get.py new file mode 100644 index 00000000..dfd1c826 --- /dev/null +++ b/snippets/python/dataset-usage-get.py @@ -0,0 +1,8 @@ +import cohere + +co = cohere.Client("<>") + +# get usage +response = co.datasets.get_usage() + +print(response) diff --git a/snippets/python/detokenize-post.py b/snippets/python/detokenize-post.py new file mode 100644 index 00000000..5c5d4e1f --- /dev/null +++ b/snippets/python/detokenize-post.py @@ -0,0 +1,8 @@ +import cohere + +co = cohere.Client("<>") + +response = co.detokenize( + tokens=[8466, 5169, 2594, 8, 2792, 43], model="command" # optional +) +print(response) diff --git a/snippets/python/embed-jobs-cancel.py b/snippets/python/embed-jobs-cancel.py new file mode 100644 index 00000000..bad57a30 --- /dev/null +++ b/snippets/python/embed-jobs-cancel.py @@ -0,0 +1,6 @@ +import cohere + +co = cohere.Client("<>") + +# cancel an embed job +co.embed_jobs.cancel("job_id") diff --git a/snippets/python/embed-jobs-get.py b/snippets/python/embed-jobs-get.py new file mode 100644 index 00000000..9422c181 --- /dev/null +++ b/snippets/python/embed-jobs-get.py @@ -0,0 +1,8 @@ +import cohere + +co = cohere.Client("<>") + +# list embed jobs +response = co.embed_jobs.list() + +print(response) diff --git a/snippets/python/embed-jobs-post.py b/snippets/python/embed-jobs-post.py new file mode 100644 index 00000000..13c42263 --- /dev/null +++ b/snippets/python/embed-jobs-post.py @@ -0,0 +1,13 @@ +import cohere + +co = cohere.Client("<>") + +# start an embed job +response = co.embed_jobs.create( + dataset_id=ds.id, input_type="search_document", model="embed-english-v3.0" +) + +# poll the server until the job is complete +response = co.wait(job) + +print(response) diff --git a/snippets/python/embed-post.py b/snippets/python/embed-post.py new file mode 100644 index 00000000..618659de --- /dev/null +++ b/snippets/python/embed-post.py @@ -0,0 +1,8 @@ +import cohere + +co = cohere.Client("<>") + +response = co.embed( + texts=["hello", "goodbye"], model="embed-english-v3.0", input_type="classification" +) +print(response) diff --git a/snippets/python/emebed-jobs-get.py b/snippets/python/emebed-jobs-get.py new file mode 100644 index 00000000..27616964 --- /dev/null +++ b/snippets/python/emebed-jobs-get.py @@ -0,0 +1,8 @@ +import cohere + +co = cohere.Client("<>") + +# get embed job +response = co.embed_jobs.get("job_id") + +print(response) diff --git a/snippets/python/finetuning/create-finetuned-model.py b/snippets/python/finetuning/create-finetuned-model.py new file mode 100644 index 00000000..c1ab45f9 --- /dev/null +++ b/snippets/python/finetuning/create-finetuned-model.py @@ -0,0 +1,29 @@ +from cohere.finetuning import ( + BaseModel, + FinetunedModel, + Hyperparameters, + Settings, +) +import cohere + +co = cohere.Client("<>") +hp = Hyperparameters( + early_stopping_patience=10, + early_stopping_threshold=0.001, + train_batch_size=16, + train_epoch=1, + learning_rate=0.01, +) +finetuned_model = co.finetuning.create_finetuned_model( + request=FinetunedModel( + name="test-finetuned-model", + settings=Settings( + base_model=BaseModel( + base_type="BASE_TYPE_CHAT", + ), + dataset_id="my-dataset-id", + hyperparameters=hp, + ), + ) +) +print(response) diff --git a/snippets/python/finetuning/delete-finetuned-model.py b/snippets/python/finetuning/delete-finetuned-model.py new file mode 100644 index 00000000..68674e69 --- /dev/null +++ b/snippets/python/finetuning/delete-finetuned-model.py @@ -0,0 +1,4 @@ +import cohere + +co = cohere.Client("<>") +co.finetuning.delete_finetuned_model("test-id") diff --git a/snippets/python/finetuning/get-finetuned-model.py b/snippets/python/finetuning/get-finetuned-model.py new file mode 100644 index 00000000..91b03627 --- /dev/null +++ b/snippets/python/finetuning/get-finetuned-model.py @@ -0,0 +1,5 @@ +import cohere + +co = cohere.Client("<>") +response = co.finetuning.get_finetuned_model("test-id") +print(response) diff --git a/snippets/python/finetuning/list-events.py b/snippets/python/finetuning/list-events.py new file mode 100644 index 00000000..cb6f2fcf --- /dev/null +++ b/snippets/python/finetuning/list-events.py @@ -0,0 +1,5 @@ +import cohere + +co = cohere.Client("<>") +response = co.finetuning.list_events(finetuned_model_id="test-id") +print(response) diff --git a/snippets/python/finetuning/list-finetuned-models.py b/snippets/python/finetuning/list-finetuned-models.py new file mode 100644 index 00000000..7cef0bb8 --- /dev/null +++ b/snippets/python/finetuning/list-finetuned-models.py @@ -0,0 +1,5 @@ +import cohere + +co = cohere.Client("<>") +response = co.finetuning.list_finetuned_models() +print(response) diff --git a/snippets/python/finetuning/list-training-step-metrics.py b/snippets/python/finetuning/list-training-step-metrics.py new file mode 100644 index 00000000..1d1cdd73 --- /dev/null +++ b/snippets/python/finetuning/list-training-step-metrics.py @@ -0,0 +1,6 @@ +import cohere + +co = cohere.Client("<>") +train_step_metrics = co.finetuning.list_training_step_metrics( + finetuned_model_id="test-id") +print(train_step_metrics) diff --git a/snippets/python/finetuning/update-finetuned-model.py b/snippets/python/finetuning/update-finetuned-model.py new file mode 100644 index 00000000..51b3b498 --- /dev/null +++ b/snippets/python/finetuning/update-finetuned-model.py @@ -0,0 +1,14 @@ +import cohere + +co = cohere.Client("<>") +finetuned_model = co.finetuning.update_finetuned_model( + id="test-id", + name="new name", + settings=Settings( + base_model=BaseModel( + base_type="BASE_TYPE_CHAT", + ), + dataset_id="my-dataset-id",) +) + +print(finetuned_model) diff --git a/snippets/python/generate-post.py b/snippets/python/generate-post.py new file mode 100644 index 00000000..4b1a24ec --- /dev/null +++ b/snippets/python/generate-post.py @@ -0,0 +1,8 @@ +import cohere + +co = cohere.Client("<>") + +response = co.generate( + prompt="Please explain to me how LLMs work", +) +print(response) diff --git a/snippets/python/models-list-get.py b/snippets/python/models-list-get.py new file mode 100644 index 00000000..87a111c7 --- /dev/null +++ b/snippets/python/models-list-get.py @@ -0,0 +1,5 @@ +import cohere + +co = cohere.Client("<>") +response = co.models.list() +print(response) diff --git a/snippets/python/rerank-post.py b/snippets/python/rerank-post.py new file mode 100644 index 00000000..5150cadb --- /dev/null +++ b/snippets/python/rerank-post.py @@ -0,0 +1,19 @@ +import cohere + +co = cohere.Client("<>") + +docs = [ + "Carson City is the capital city of the American state of Nevada.", + "The Commonwealth of the Northern Mariana Islands is a group of islands in the Pacific Ocean. Its capital is Saipan.", + "Capitalization or capitalisation in English grammar is the use of a capital letter at the start of a word. English usage varies from capitalization in other languages.", + "Washington, D.C. (also known as simply Washington or D.C., and officially as the District of Columbia) is the capital of the United States. It is a federal district.", + "Capital punishment (the death penalty) has existed in the United States since beforethe United States was a country. As of 2017, capital punishment is legal in 30 of the 50 states.", +] + +response = co.rerank( + model="rerank-english-v3.0", + query="What is the capital of the United States?", + documents=docs, + top_n=3, +) +print(response) diff --git a/snippets/python/summarize-post.py b/snippets/python/summarize-post.py new file mode 100644 index 00000000..62307460 --- /dev/null +++ b/snippets/python/summarize-post.py @@ -0,0 +1,31 @@ +import cohere + +co = cohere.Client("<>") + +text = ( + "Ice cream is a sweetened frozen food typically eaten as a snack or dessert. " + "It may be made from milk or cream and is flavoured with a sweetener, " + "either sugar or an alternative, and a spice, such as cocoa or vanilla, " + "or with fruit such as strawberries or peaches. " + "It can also be made by whisking a flavored cream base and liquid nitrogen together. " + "Food coloring is sometimes added, in addition to stabilizers. " + "The mixture is cooled below the freezing point of water and stirred to incorporate air spaces " + "and to prevent detectable ice crystals from forming. The result is a smooth, " + "semi-solid foam that is solid at very low temperatures (below 2 °C or 35 °F). " + "It becomes more malleable as its temperature increases.\n\n" + 'The meaning of the name "ice cream" varies from one country to another. ' + 'In some countries, such as the United States, "ice cream" applies only to a specific variety, ' + "and most governments regulate the commercial use of the various terms according to the " + "relative quantities of the main ingredients, notably the amount of cream. " + "Products that do not meet the criteria to be called ice cream are sometimes labelled " + '"frozen dairy dessert" instead. In other countries, such as Italy and Argentina, ' + "one word is used fo\r all variants. Analogues made from dairy alternatives, " + "such as goat's or sheep's milk, or milk substitutes " + "(e.g., soy, cashew, coconut, almond milk or tofu), are available for those who are " + "lactose intolerant, allergic to dairy protein or vegan." +) + +response = co.summarize( + text=text, +) +print(response) diff --git a/snippets/python/tokenize-post.py b/snippets/python/tokenize-post.py new file mode 100644 index 00000000..c4cd55b2 --- /dev/null +++ b/snippets/python/tokenize-post.py @@ -0,0 +1,6 @@ +import cohere + +co = cohere.Client("<>") + +response = co.tokenize(text="tokenize me! :D", model="command") # optional +print(response) diff --git a/snippets/settings.gradle b/snippets/settings.gradle new file mode 100644 index 00000000..a0444f01 --- /dev/null +++ b/snippets/settings.gradle @@ -0,0 +1,14 @@ +/* + * This file was generated by the Gradle 'init' task. + * + * The settings file is used to specify which projects to include in your build. + * For more detailed information on multi-project builds, please refer to https://docs.gradle.org/8.5/userguide/building_swift_projects.html in the Gradle documentation. + */ + +plugins { + // Apply the foojay-resolver plugin to allow automatic download of JDKs + id 'org.gradle.toolchains.foojay-resolver-convention' version '0.7.0' +} + +rootProject.name = 'snippets' +include('app')