1"use strict";(self.webpackChunkspring_ai_alibaba_website=self.webpackChunkspring_ai_alibaba_website||[]).push([[3682],{28453:(e,n,i)=>{i.d(n,{R:()=>t,x:()=>c});var d=i(96540);const r={},s=d.createContext(r);function t(e){const n=d.useContext(s);return d.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:t(e.components),d.createElement(s.Provider,{value:n},e.children)}},47181:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>l,contentTitle:()=>c,default:()=>g,frontMatter:()=>t,metadata:()=>d,toc:()=>a});const d=JSON.parse('{"id":"rag/embeddings/more/oci-genai-embeddings","title":"Oracle Cloud Infrastructure (OCI) GenAI Embeddings","description":"https://www.oracle.com/artificial-intelligence/generative-ai/generative-ai-service/[OCI GenAI Service] \u63d0\u4f9b\u6309\u9700\u6a21\u578b\u6216\u4e13\u7528 AI \u96c6\u7fa4\u7684\u6587\u672c embedding\u3002","source":"@site/integration/rag/embeddings/more/oci-genai-embeddings.md","sourceDirName":"rag/embeddings/more","slug":"/rag/embeddings/more/oci-genai-embeddings","permalink":"/integration/rag/embeddings/more/oci-genai-embeddings","draft":false,"unlisted":false,"editUrl":"https://github.com/spring-ai-alibaba/website/tree/main/integration/rag/embeddings/more/oci-genai-embeddings.md","tags":[],"version":"current","lastUpdatedBy":"txuw","lastUpdatedAt":1768049689000,"frontMatter":{},"sidebar":"integrationSidebar","previous":{"title":"Mistral AI Embeddings","permalink":"/integration/rag/embeddings/more/mistralai-embeddings"},"next":{"title":"Transformers (ONNX) Embeddings","permalink":"/integration/rag/embeddings/more/onnx"}}');var r=i(74848),s=i(28453);const t={},c="Oracle Cloud Infrastructure (OCI) GenAI Embeddings",l={},a=[{value:"\u5148\u51b3\u6761\u4ef6",id:"\u5148\u51b3\u6761\u4ef6",level:2},{value:"\u6dfb\u52a0\u4ed3\u5e93\u548c BOM",id:"\u6dfb\u52a0\u4ed3\u5e93\u548c-bom",level:3},{value:"\u81ea\u52a8\u914d\u7f6e",id:"\u81ea\u52a8\u914d\u7f6e",level:2},{value:"Embedding \u5c5e\u6027",id:"embedding-\u5c5e\u6027",level:3},{value:"\u8fd0\u884c\u65f6\u9009\u9879",id:"\u8fd0\u884c\u65f6\u9009\u9879",level:2},{value:"\u793a\u4f8b\u4ee3\u7801",id:"\u793a\u4f8b\u4ee3\u7801",level:2},{value:"\u624b\u52a8\u914d\u7f6e",id:"\u624b\u52a8\u914d\u7f6e",level:2}];function o(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,s.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.header,{children:(0,r.jsx)(n.h1,{id:"oracle-cloud-infrastructure-oci-genai-embeddings",children:"Oracle Cloud Infrastructure (OCI) GenAI Embeddings"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.a,{href:"https://www.oracle.com/artificial-intelligence/generative-ai/generative-ai-service/%5BOCI",children:"https://www.oracle.com/artificial-intelligence/generative-ai/generative-ai-service/[OCI"})," GenAI Service] \u63d0\u4f9b\u6309\u9700\u6a21\u578b\u6216\u4e13\u7528 AI \u96c6\u7fa4\u7684\u6587\u672c embedding\u3002"]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.a,{href:"https://docs.oracle.com/en-us/iaas/Content/generative-ai/embed-models.htm%5BOCI",children:"https://docs.oracle.com/en-us/iaas/Content/generative-ai/embed-models.htm[OCI"})," Embedding Models Page] \u548c ",(0,r.jsx)(n.a,{href:"https://docs.oracle.com/en-us/iaas/Content/generative-ai/use-playground-embed.htm%5BOCI",children:"https://docs.oracle.com/en-us/iaas/Content/generative-ai/use-playground-embed.htm[OCI"})," Text Embeddings Page] \u63d0\u4f9b\u6709\u5173\u5728 OCI \u4e0a\u4f7f\u7528\u548c\u6258\u7ba1 embedding \u6a21\u578b\u7684\u8be6\u7ec6\u4fe1\u606f\u3002"]}),"\n",(0,r.jsx)(n.h2,{id:"\u5148\u51b3\u6761\u4ef6",children:"\u5148\u51b3\u6761\u4ef6"}),"\n",(0,r.jsx)(n.h3,{id:"\u6dfb\u52a0\u4ed3\u5e93\u548c-bom",children:"\u6dfb\u52a0\u4ed3\u5e93\u548c BOM"}),"\n",(0,r.jsxs)(n.p,{children:["Spring AI \u5de5\u4ef6\u53d1\u5e03\u5728 Maven Central \u548c Spring Snapshot \u4ed3\u5e93\u4e2d\u3002\n\u8bf7\u53c2\u9605 ",(0,r.jsx)(n.a,{href:"https://docs.spring.io/spring-ai/reference/getting-started.html#artifact-repositories",children:"Artifact Repositories"})," \u90e8\u5206\uff0c\u5c06\u8fd9\u4e9b\u4ed3\u5e93\u6dfb\u52a0\u5230\u60a8\u7684\u6784\u5efa\u7cfb\u7edf\u3002"]}),"\n",(0,r.jsxs)(n.p,{children:["\u4e3a\u4e86\u5e2e\u52a9\u4f9d\u8d56\u7ba1\u7406\uff0cSpring AI \u63d0\u4f9b\u4e86\u4e00\u4e2a BOM\uff08\u7269\u6599\u6e05\u5355\uff09\uff0c\u4ee5\u786e\u4fdd\u5728\u6574\u4e2a\u9879\u76ee\u4e2d\u4f7f\u7528\u4e00\u81f4\u7248\u672c\u7684 Spring AI\u3002\u8bf7\u53c2\u9605 ",(0,r.jsx)(n.a,{href:"https://docs.spring.io/spring-ai/reference/getting-started.html#dependency-management",children:"Dependency Management"})," \u90e8\u5206\uff0c\u5c06 Spring AI BOM \u6dfb\u52a0\u5230\u60a8\u7684\u6784\u5efa\u7cfb\u7edf\u3002"]}),"\n",(0,r.jsx)(n.h2,{id:"\u81ea\u52a8\u914d\u7f6e",children:"\u81ea\u52a8\u914d\u7f6e"}),"\n",(0,r.jsx)(n.h1,{id:"\u6ce8\u610f",children:"[\u6ce8\u610f]"}),"\n",(0,r.jsxs)(n.h1,{id:"spring-ai-\u81ea\u52a8\u914d\u7f6estarter-\u6a21\u5757\u7684\u5de5\u4ef6\u540d\u79f0\u53d1\u751f\u4e86\u91cd\u5927\u53d8\u5316\u8bf7\u53c2\u9605-httpsdocsspringiospring-aireferenceupgrade-noteshtml\u5347\u7ea7\u8bf4\u660e-\u4e86\u89e3\u66f4\u591a\u4fe1\u606f",children:["Spring AI \u81ea\u52a8\u914d\u7f6e\u3001starter \u6a21\u5757\u7684\u5de5\u4ef6\u540d\u79f0\u53d1\u751f\u4e86\u91cd\u5927\u53d8\u5316\u3002\n\u8bf7\u53c2\u9605 ",(0,r.jsx)(n.a,{href:"https://docs.spring.io/spring-ai/reference/upgrade-notes.html%5B%E5%8D%87%E7%BA%A7%E8%AF%B4%E6%98%8E",children:"https://docs.spring.io/spring-ai/reference/upgrade-notes.html[\u5347\u7ea7\u8bf4\u660e"}),"] \u4e86\u89e3\u66f4\u591a\u4fe1\u606f\u3002"]}),"\n",(0,r.jsxs)(n.p,{children:["Spring AI \u4e3a OCI GenAI Embedding Client \u63d0\u4f9b Spring Boot \u81ea\u52a8\u914d\u7f6e\u3002\n\u8981\u542f\u7528\u5b83\uff0c\u8bf7\u5c06\u4ee5\u4e0b\u4f9d\u8d56\u9879\u6dfb\u52a0\u5230\u9879\u76ee\u7684 Maven ",(0,r.jsx)(n.code,{children:"pom.xml"})," \u6587\u4ef6\u4e2d\uff1a"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-xml",children:"<dependency>\n <groupId>org.springframework.ai</groupId>\n <artifactId>spring-ai-starter-model-oci-genai</artifactId>\n</dependency>\n"})}),"\n",(0,r.jsxs)(n.p,{children:["\u6216\u6dfb\u52a0\u5230\u60a8\u7684 Gradle ",(0,r.jsx)(n.code,{children:"build.gradle"})," \u6784\u5efa\u6587\u4ef6\u3002"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-groovy",children:"dependencies {\n implementation 'org.springframework.ai:spring-ai-starter-model-oci-genai'\n}\n"})}),"\n",(0,r.jsxs)(n.p,{children:["\u63d0\u793a\uff1a\u8bf7\u53c2\u9605 ",(0,r.jsx)(n.a,{href:"https://docs.spring.io/spring-ai/reference/getting-started.html#dependency-management",children:"Dependency Management"})," \u90e8\u5206\uff0c\u5c06 Spring AI BOM \u6dfb\u52a0\u5230\u60a8\u7684\u6784\u5efa\u6587\u4ef6\u3002"]}),"\n",(0,r.jsx)(n.h3,{id:"embedding-\u5c5e\u6027",children:"Embedding \u5c5e\u6027"}),"\n",(0,r.jsxs)(n.p,{children:["\u524d\u7f00 ",(0,r.jsx)(n.code,{children:"spring.ai.oci.genai"}
1)," \u662f\u914d\u7f6e\u4e0e OCI GenAI \u8fde\u63a5\u7684\u5c5e\u6027\u524d\u7f00\u3002"]}),"\n",(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Property"}),(0,r.jsx)(n.th,{children:"Description"}),(0,r.jsx)(n.th,{children:"Default"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"spring.ai.oci.genai.authenticationType"}),(0,r.jsxs)(n.td,{children:["\u5728\u5411 OCI \u8fdb\u884c\u8eab\u4efd\u9a8c\u8bc1\u65f6\u4f7f\u7528\u7684\u8eab\u4efd\u9a8c\u8bc1\u7c7b\u578b\u3002\u53ef\u4ee5\u662f ",(0,r.jsx)(n.code,{children:"file"}),"\u3001",(0,r.jsx)(n.code,{children:"instance-principal"}),"\u3001",(0,r.jsx)(n.code,{children:"workload-identity"})," \u6216 ",(0,r.jsx)(n.code,{children:"simple"}),"\u3002"]}),(0,r.jsx)(n.td,{children:"file"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"spring.ai.oci.genai.region"}),(0,r.jsx)(n.td,{children:"OCI \u670d\u52a1\u533a\u57df\u3002"}),(0,r.jsx)(n.td,{children:"us-chicago-1"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"spring.ai.oci.genai.tenantId"}),(0,r.jsxs)(n.td,{children:["OCI \u79df\u6237 OCID\uff0c\u5728\u4f7f\u7528 ",(0,r.jsx)(n.code,{children:"simple"})," \u8eab\u4efd\u9a8c\u8bc1\u65f6\u4f7f\u7528\u3002"]}),(0,r.jsx)(n.td,{children:"-"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"spring.ai.oci.genai.userId"}),(0,r.jsxs)(n.td,{children:["OCI \u7528\u6237 OCID\uff0c\u5728\u4f7f\u7528 ",(0,r.jsx)(n.code,{children:"simple"})," \u8eab\u4efd\u9a8c\u8bc1\u65f6\u4f7f\u7528\u3002"]}),(0,r.jsx)(n.td,{children:"-"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"spring.ai.oci.genai.fingerprint"}),(0,r.jsxs)(n.td,{children:["\u79c1\u94a5\u6307\u7eb9\uff0c\u5728\u4f7f\u7528 ",(0,r.jsx)(n.code,{children:"simple"})," \u8eab\u4efd\u9a8c\u8bc1\u65f6\u4f7f\u7528\u3002"]}),(0,r.jsx)(n.td,{children:"-"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"spring.ai.oci.genai.privateKey"}),(0,r.jsxs)(n.td,{children:["\u79c1\u94a5\u5185\u5bb9\uff0c\u5728\u4f7f\u7528 ",(0,r.jsx)(n.code,{children:"simple"})," \u8eab\u4efd\u9a8c\u8bc1\u65f6\u4f7f\u7528\u3002"]}),(0,r.jsx)(n.td,{children:"-"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"spring.ai.oci.genai.passPhrase"}),(0,r.jsxs)(n.td,{children:["\u53ef\u9009\u7684\u79c1\u94a5\u5bc6\u7801\uff0c\u5728\u4f7f\u7528 ",(0,r.jsx)(n.code,{children:"simple"})," \u8eab\u4efd\u9a8c\u8bc1\u548c\u53d7\u5bc6\u7801\u4fdd\u62a4\u7684\u79c1\u94a5\u65f6\u4f7f\u7528\u3002"]}),(0,r.jsx)(n.td,{children:"-"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"spring.ai.oci.genai.file"}),(0,r.jsxs)(n.td,{children:["OCI \u914d\u7f6e\u6587\u4ef6\u7684\u8def\u5f84\u3002\u5728\u4f7f\u7528 ",(0,r.jsx)(n.code,{children:"file"})," \u8eab\u4efd\u9a8c\u8bc1\u65f6\u4f7f\u7528\u3002"]}),(0,r.jsx)(n.td,{children:"/user-home-directory/.oci/config"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"spring.ai.oci.genai.profile"}),(0,r.jsxs)(n.td,{children:["OCI profile \u540d\u79f0\u3002\u5728\u4f7f\u7528 ",(0,r.jsx)(n.code,{children:"file"})," \u8eab\u4efd\u9a8c\u8bc1\u65f6\u4f7f\u7528\u3002"]}),(0,r.jsx)(n.td,{children:"DEFAULT"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"spring.ai.oci.genai.endpoint"}),(0,r.jsx)(n.td,{children:"\u53ef\u9009\u7684 OCI GenAI \u7aef\u70b9\u3002"}),(0,r.jsx)(n.td,{children:"-"})]})]})]}),"\n",(0,r.jsx)(n.h1,{id:"\u6ce8\u610f-1",children:"[\u6ce8\u610f]"}),"\n",(0,r.jsxs)(n.p,{children:["\u73b0\u5728\u901a\u8fc7\u524d\u7f00\u4e3a ",(0,r.jsx)(n.code,{children:"spring.ai.model.embedding"})," \u7684\u9876\u7ea7\u5c5e\u6027\u6765\u914d\u7f6e embedding \u81ea\u52a8\u914d\u7f6e\u7684\u542f\u7528\u548c\u7981\u7528\u3002"]}),"\n",(0,r.jsx)(n.p,{children:"\u8981\u542f\u7528\uff0cspring.ai.model.embedding=oci-genai\uff08\u9ed8\u8ba4\u542f\u7528\uff09"}),"\n",(0,r.jsx)(n.p,{children:"\u8981\u7981\u7528\uff0cspring.ai.model.embedding=none\uff08\u6216\u4efb\u4f55\u4e0d\u5339\u914d oci-genai \u7684\u503c\uff09"}),"\n",(0,r.jsx)(n.h1,{id:"\u8fdb\u884c\u6b64\u66f4\u6539\u662f\u4e3a\u4e86\u5141\u8bb8\u914d\u7f6e\u591a\u4e2a\u6a21\u578b",children:"\u8fdb\u884c\u6b64\u66f4\u6539\u662f\u4e3a\u4e86\u5141\u8bb8\u914d\u7f6e\u591a\u4e2a\u6a21\u578b\u3002"}),"\n",(0,r.jsxs)(n.p,{children:["\u524d\u7f00 ",(0,r.jsx)(n.code,{children:"spring.ai.oci.genai.embedding"})," \u662f\u914d\u7f6e OCI GenAI \u7684 ",(0,r.jsx)(n.code,{children:"EmbeddingModel"})," \u5b9e\u73b0\u7684\u5c5e\u6027\u524d\u7f00"]}),"\n",(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Property"}),(0,r.jsx)(n.th,{children:"Description"}),(0,r.jsx)(n.th,{children:"Default"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"spring.ai.oci.genai.embedding.enabled (\u5df2\u79fb\u9664\u4e14\u4e0d\u518d\u6709\u6548)"}),(0,r.jsx)(n.td,{children:"\u542f\u7528 OCI GenAI embedding \u6a21\u578b\u3002"}),(0,r.jsx)(n.td,{children:"true"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"spring.ai.model.embedding"}),(0,r.jsx)(n.td,{children:"\u542f\u7528 OCI GenAI embedding \u6a21\u578b\u3002"}),(0,r.jsx)(n.td,{children:"oci-genai"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"spring.ai.oci.genai.embedding.compartment"}),(0,r.jsx)(n.td,{children:"\u6a21\u578b compartment OCID\u3002"}),(0,r.jsx)(n.td,{children:"-"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"spring.ai.oci.genai.embedding.servingMode"}),(0,r.jsxs)(n.td,{children:["\u8981\u4f7f\u7528\u7684\u6a21\u578b\u670d\u52a1\u6a21\u5f0f\u3002\u53ef\u4ee5\u662f ",(0,r.jsx)(n.code,{children:"on-demand"})," \u6216 ",(0,r.jsx)(n.code,{children:"dedicated"}),"\u3002"]}),(0,r.jsx)(n.td,{children:"on-demand"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"spring.ai.oci.genai.embedding.truncate"}),(0,r.jsxs)(n.td,{children:["\u5982\u679c\u6587\u672c\u8d85\u8fc7 embedding \u4e0a\u4e0b\u6587\uff0c\u5982\u4f55\u622a\u65ad\u6587\u672c\u3002\u53ef\u4ee5\u662f ",(0,r.jsx)(n.code,{children:"START"})," \u6216 ",(0,r.jsx)(n.code,{children:"END"}),"\u3002"]}),(0,r.jsx)(n.td,{children:"END"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"spring.ai.oci.genai.embedding.model"}),(0,r.jsx)(n.td,{children:"\u7528\u4e8e embeddings \u7684\u6a21\u578b\u6216\u6a21\u578b\u7aef\u70b9\u3002"}),(0,r.jsx)(n.td,{children:"-"})]})]})]}),"\n",(0,r.jsxs)(n.p,{children:["\u63d0\u793a\uff1a\u6240\u6709\u524d\u7f00\u4e3a ",(0,r.jsx)(n.code,{children:"spring.ai.oci.genai.embedding.options"})," \u7684\u5c5e\u6027\u90fd\u53ef\u4ee5\u901a\u8fc7\u5728 ",(0,r.jsx)(n.code,{children:"EmbeddingRequest"})," \u8c03\u7528\u4e2d\u6dfb\u52a0\u7279\u5b9a\u4e8e\u8bf7\u6c42\u7684 ",(0,r.jsx)(n.a,{href:"#embedding-options",children:"embedding-options"})," \u5728\u8fd0\u884c\u65f6\u8986\u76d6\u3002"]}),"\n",(0,r.jsx)(n.h2,{id:"\u8fd0\u884c\u65f6\u9009\u9879",children:"\u8fd0\u884c\u65f6\u9009\u9879"}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.code,{children:"OCIEmbeddingOptions"})," \u63d0\u4f9b embedding \u8bf7\u6c42\u7684\u914d\u7f6e\u4fe1\u606f\u3002\n",(0,r.jsx)(n.code,{children:"OCIEmbeddingOptions"})," \u63d0\u4f9b\u4e86\u4e00\u4e2a builder \u6765\u521b\u5efa\u9009\u9879\u3002"]}
1),"\n",(0,r.jsxs)(n.p,{children:["\u5728\u542f\u52a8\u65f6\u4f7f\u7528 ",(0,r.jsx)(n.code,{children:"OCIEmbeddingOptions"})," \u6784\u9020\u51fd\u6570\u6765\u8bbe\u7f6e\u7528\u4e8e\u6240\u6709 embedding \u8bf7\u6c42\u7684\u9ed8\u8ba4\u9009\u9879\u3002\n\u5728\u8fd0\u884c\u65f6\uff0c\u60a8\u53ef\u4ee5\u901a\u8fc7\u5728 ",(0,r.jsx)(n.code,{children:"EmbeddingRequest"})," \u8bf7\u6c42\u4e2d\u4f20\u9012 ",(0,r.jsx)(n.code,{children:"OCIEmbeddingOptions"})," \u5b9e\u4f8b\u6765\u8986\u76d6\u9ed8\u8ba4\u9009\u9879\u3002"]}),"\n",(0,r.jsx)(n.p,{children:"\u4f8b\u5982\uff0c\u4e3a\u7279\u5b9a\u8bf7\u6c42\u8986\u76d6\u9ed8\u8ba4\u6a21\u578b\u540d\u79f0\uff1a"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-java",children:'EmbeddingResponse embeddingResponse = embeddingModel.call(\n new EmbeddingRequest(List.of("Hello World", "World is big and salvation is near"),\n OCIEmbeddingOptions.builder()\n .model("my-other-embedding-model")\n .build()\n));\n'})}),"\n",(0,r.jsx)(n.h2,{id:"\u793a\u4f8b\u4ee3\u7801",children:"\u793a\u4f8b\u4ee3\u7801"}),"\n",(0,r.jsxs)(n.p,{children:["\u8fd9\u5c06\u521b\u5efa\u4e00\u4e2a ",(0,r.jsx)(n.code,{children:"EmbeddingModel"})," \u5b9e\u73b0\uff0c\u60a8\u53ef\u4ee5\u5c06\u5176\u6ce8\u5165\u5230\u60a8\u7684\u7c7b\u4e2d\u3002\n\u4ee5\u4e0b\u662f\u4e00\u4e2a\u4f7f\u7528 ",(0,r.jsx)(n.code,{children:"EmbeddingModel"})," \u5b9e\u73b0\u7684\u7b80\u5355 ",(0,r.jsx)(n.code,{children:"@Controller"})," \u7c7b\u793a\u4f8b\u3002"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-properties",children:"spring.ai.oci.genai.embedding.model=<your model>\nspring.ai.oci.genai.embedding.compartment=<your model compartment>\n"})}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-java",children:'@RestController\npublic class EmbeddingController {\n\n private final EmbeddingModel embeddingModel;\n\n @Autowired\n public EmbeddingController(EmbeddingModel embeddingModel) {\n this.embeddingModel = embeddingModel;\n }\n\n @GetMapping("/ai/embedding")\n public Map embed(@RequestParam(value = "message", defaultValue = "Tell me a joke") String message) {\n EmbeddingResponse embeddingResponse = this.embeddingModel.embedForResponse(List.of(message));\n return Map.of("embedding", embeddingResponse);\n }\n}\n'})}),"\n",(0,r.jsx)(n.h2,{id:"\u624b\u52a8\u914d\u7f6e",children:"\u624b\u52a8\u914d\u7f6e"}),"\n",(0,r.jsxs)(n.p,{children:["\u5982\u679c\u60a8\u4e0d\u60f3\u4f7f\u7528 Spring Boot \u81ea\u52a8\u914d\u7f6e\uff0c\u53ef\u4ee5\u5728\u5e94\u7528\u7a0b\u5e8f\u4e2d\u624b\u52a8\u914d\u7f6e ",(0,r.jsx)(n.code,{children:"OCIEmbeddingModel"}),"\u3002\n\u4e3a\u6b64\uff0c\u8bf7\u5c06 ",(0,r.jsx)(n.code,{children:"spring-oci-genai-openai"})," \u4f9d\u8d56\u9879\u6dfb\u52a0\u5230\u9879\u76ee\u7684 Maven ",(0,r.jsx)(n.code,{children:"pom.xml"})," \u6587\u4ef6\u4e2d\uff1a"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-xml",children:"<dependency>\n <groupId>org.springframework.ai</groupId>\n <artifactId>spring-oci-genai-openai</artifactId>\n</dependency>\n"})}),"\n",(0,r.jsxs)(n.p,{children:["\u6216\u6dfb\u52a0\u5230\u60a8\u7684 Gradle ",(0,r.jsx)(n.code,{children:"build.gradle"})," \u6784\u5efa\u6587\u4ef6\u3002"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-gradle",children:"dependencies {\n implementation 'org.springframework.ai:spring-oci-genai-openai'\n}\n"})}),"\n",(0,r.jsxs)(n.p,{children:["\u63d0\u793a\uff1a\u8bf7\u53c2\u9605 ",(0,r.jsx)(n.a,{href:"https://docs.spring.io/spring-ai/reference/getting-started.html#dependency-management",children:"Dependency Management"})," \u90e8\u5206\uff0c\u5c06 Spring AI BOM \u6dfb\u52a0\u5230\u60a8\u7684\u6784\u5efa\u6587\u4ef6\u3002"]}),"\n",(0,r.jsxs)(n.p,{children:["\u63a5\u4e0b\u6765\uff0c\u521b\u5efa\u4e00\u4e2a ",(0,r.jsx)(n.code,{children:"OCIEmbeddingModel"})," \u5b9e\u4f8b\u5e76\u4f7f\u7528\u5b83\u6765\u8ba1\u7b97\u4e24\u4e2a\u8f93\u5165\u6587\u672c\u4e4b\u95f4\u7684\u76f8\u4f3c\u6027\uff1a"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-java",children:'final Str
1ing EMBEDDING_MODEL = "cohere.embed-english-light-v2.0";\nfinal String CONFIG_FILE = Paths.get(System.getProperty("user.home"), ".oci", "config").toString();\nfinal String PROFILE = "DEFAULT";\nfinal String REGION = "us-chicago-1";\nfinal String COMPARTMENT_ID = System.getenv("OCI_COMPARTMENT_ID");\n\nvar authProvider = new ConfigFileAuthenticationDetailsProvider(\n\t\tthis.CONFIG_FILE, this.PROFILE);\nvar aiClient = GenerativeAiInferenceClient.builder()\n .region(Region.valueOf(this.REGION))\n .build(this.authProvider);\nvar options = OCIEmbeddingOptions.builder()\n .model(this.EMBEDDING_MODEL)\n .compartment(this.COMPARTMENT_ID)\n .servingMode("on-demand")\n .build();\nvar embeddingModel = new OCIEmbeddingModel(this.aiClient, this.options);\nList<Double> embedding = this.embeddingModel.embed(new Document("How many provinces are in Canada?"));\n'})})]})}function g(e={}){const{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(o,{...e})}):o(e)}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.