Buckets:

download
raw
26.1 kB
import{s as kt,n as Qt,o as Vt}from"../chunks/scheduler.2b22cead.js";import{S as Rt,i as zt,e as a,s as n,c as o,h as Ht,a as M,d as l,b as i,f as At,g as p,j as c,k as Nt,l as Yt,m as s,n as J,t as T,o as u,p as w}from"../chunks/index.1a0e8013.js";import{C as Ft,H as r,E as qt}from"../chunks/MermaidChart.svelte_svelte_type_style_lang.304fd575.js";import{C as ue}from"../chunks/CodeBlock.cccd9baf.js";function Lt(wt){let m,re,we,me,y,ye,d,de,U,ct="A Julia code execution environment that runs Julia code with test result tracking and reward calculation. Perfect for reinforcement learning training with Julia programming tasks.",Ue,I,Ie,f,rt="The simplest way to use the Julia environment is through the <code>JuliaEnv</code> class:",fe,j,je,C,mt="That’s it! The <code>JuliaEnv.from_docker_image()</code> method handles:",Ce,h,yt="<li>Starting the Docker container</li> <li>Waiting for the server to be ready</li> <li>Connecting to the environment</li> <li>Container cleanup when you call <code>close()</code></li>",he,b,be,$,dt="Before using the environment, you need to build the Docker image:",$e,v,ve,g,ge,B,Be,G,Ut="<strong>JuliaAction</strong>: Contains two fields for Julia code execution",Ge,x,It="<li><code>core_code</code> (str) - The main Julia code to execute (e.g., function definitions)</li> <li><code>test_code</code> (str) - Test code using Julia’s <code>Test</code> module (e.g., <code>@test</code> statements)</li>",xe,Z,Ze,W,ft="<strong>JuliaObservation</strong>: Contains the execution results and test outcomes",We,_,jt="<li><code>stdout</code> (str) - Standard output from Julia execution</li> <li><code>stderr</code> (str) - Standard error from Julia execution</li> <li><code>exit_code</code> (int) - Exit code (0 for success, non-zero for errors)</li> <li><code>tests_passed</code> (int) - Number of tests that passed</li> <li><code>tests_failed</code> (int) - Number of tests that failed</li> <li><code>code_compiles</code> (bool) - Whether the core code compiled/executed successfully</li>",_e,S,Se,E,Ct="<strong>JuliaState</strong>: Tracks episode execution state",Ee,A,ht="<li><code>episode_id</code> (str) - Unique identifier for the episode</li> <li><code>step_count</code> (int) - Number of steps taken in the episode</li> <li><code>last_exit_code</code> (int) - Exit code from the last execution</li> <li><code>last_code_compiles</code> (bool) - Whether the last code compiled successfully</li> <li><code>total_tests_passed</code> (int) - Cumulative number of tests passed in the episode</li> <li><code>total_tests_failed</code> (int) - Cumulative number of tests failed in the episode</li>",Ae,N,Ne,k,bt="The environment calculates rewards based on execution success and test results:",ke,Q,$t="<li>Code compiles successfully: Base reward</li> <li>Tests pass: Additional reward per test</li> <li>Tests fail or code doesn’t compile: Negative reward</li>",Qe,V,vt="See <code>server/julia_transforms.py</code> for detailed reward logic.",Ve,R,Re,z,gt="<li>✅ Execute Julia code in isolated subprocess</li> <li>✅ Parse Julia <code>Test</code> module output (tests passed/failed)</li> <li>✅ Calculate rewards based on execution results and test outcomes</li> <li>✅ Safety transforms for output truncation (prevents excessive output)</li> <li>✅ Docker support for reproducible execution</li> <li>✅ Compatible with GRPO and other RL training frameworks</li>",ze,H,He,Y,Ye,F,Bt="If you already have a Julia environment server running, you can connect directly:",Fe,q,qe,L,Gt="Note: When connecting to an existing server, <code>julia_env.close()</code> will NOT stop the server.",Le,X,Xe,D,xt="The Julia environment uses a longer timeout (180s) by default to accommodate Julia compilation and execution:",De,K,Ke,P,Pe,O,Oe,ee,et,te,Zt="Here’s a more complex example demonstrating test-driven development:",tt,le,lt,se,st,ne,Wt="This environment is compatible with:",nt,ie,_t="<li><strong>torchforge</strong>: For GRPO training with Julia tasks</li> <li><strong>TRL</strong>: Hugging Face’s RL library</li> <li><strong>Any OpenEnv-compatible RL framework</strong></li>",it,ae,at,oe,St="For local development without Docker:",ot,Me,Mt,pe,pt,Je,Et="This source code is licensed under the BSD-style license found in the LICENSE file in the root directory of this source tree.",Jt,Te,Tt,ce,ut;return y=new Ft({props:{containerStyle:"float: right; margin-left: 10px; display: inline-flex; position: relative; z-index: 10;"}}),d=new r({props:{title:"Julia Environment",local:"julia-environment",headingTag:"h1"}}),I=new r({props:{title:"Quick Start",local:"quick-start",headingTag:"h2"}}),j=new ue({props:{code:"ZnJvbSUyMGVudnMuanVsaWFfZW52JTIwaW1wb3J0JTIwSnVsaWFBY3Rpb24lMkMlMjBKdWxpYUVudiUwQSUwQXRyeSUzQSUwQSUyMCUyMCUyMCUyMCUyMyUyMENyZWF0ZSUyMGVudmlyb25tZW50JTIwZnJvbSUyMERvY2tlciUyMGltYWdlJTBBJTIwJTIwJTIwJTIwanVsaWFfZW52JTIwJTNEJTIwSnVsaWFFbnYuZnJvbV9kb2NrZXJfaW1hZ2UoJTIyanVsaWEtZW52JTNBbGF0ZXN0JTIyKSUwQSUwQSUyMCUyMCUyMCUyMCUyMyUyMFJlc2V0JTBBJTIwJTIwJTIwJTIwcmVzdWx0JTIwJTNEJTIwanVsaWFfZW52LnJlc2V0KCklMEElMjAlMjAlMjAlMjBwcmludChmJTIyUmVzZXQlMjBjb21wbGV0ZSUzQSUyMGV4aXRfY29kZSUzRCU3QnJlc3VsdC5vYnNlcnZhdGlvbi5leGl0X2NvZGUlN0QlMjIpJTBBJTBBJTIwJTIwJTIwJTIwJTIzJTIwRXhlY3V0ZSUyMEp1bGlhJTIwY29kZSUyMHdpdGglMjB0ZXN0cyUwQSUyMCUyMCUyMCUyMGFjdGlvbiUyMCUzRCUyMEp1bGlhQWN0aW9uKCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGNvcmVfY29kZSUzRCUyMiUyMiUyMiUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGZ1bmN0aW9uJTIwbXVsdGlwbHkoYSUyQyUyMGIpJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcmV0dXJuJTIwYSUyMColMjBiJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwZW5kJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIyJTIyJTIyJTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwdGVzdF9jb2RlJTNEJTIyJTIyJTIyJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwdXNpbmclMjBUZXN0JTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTQwdGVzdCUyMG11bHRpcGx5KDMlMkMlMjA0KSUyMCUzRCUzRCUyMDEyJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTQwdGVzdCUyMG11bHRpcGx5KDUlMkMlMjA2KSUyMCUzRCUzRCUyMDMwJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIyJTIyJTIyJTBBJTIwJTIwJTIwJTIwKSUwQSUwQSUyMCUyMCUyMCUyMHJlc3VsdCUyMCUzRCUyMGp1bGlhX2Vudi5zdGVwKGFjdGlvbiklMEElMjAlMjAlMjAlMjBwcmludChmJTIyVGVzdHMlMjBwYXNzZWQlM0ElMjAlN0JyZXN1bHQub2JzZXJ2YXRpb24udGVzdHNfcGFzc2VkJTdEJTIyKSUwQSUyMCUyMCUyMCUyMHByaW50KGYlMjJUZXN0cyUyMGZhaWxlZCUzQSUyMCU3QnJlc3VsdC5vYnNlcnZhdGlvbi50ZXN0c19mYWlsZWQlN0QlMjIpJTBBJTIwJTIwJTIwJTIwcHJpbnQoZiUyMkNvZGUlMjBjb21waWxlcyUzQSUyMCU3QnJlc3VsdC5vYnNlcnZhdGlvbi5jb2RlX2NvbXBpbGVzJTdEJTIyKSUwQSUyMCUyMCUyMCUyMHByaW50KGYlMjJSZXdhcmQlM0ElMjAlN0JyZXN1bHQucmV3YXJkJTdEJTIyKSUwQSUwQWZpbmFsbHklM0ElMEElMjAlMjAlMjAlMjAlMjMlMjBBbHdheXMlMjBjbGVhbiUyMHVwJTBBJTIwJTIwJTIwJTIwanVsaWFfZW52LmNsb3NlKCk=",highlighted:`<span class="hljs-keyword">from</span> envs.julia_env <span class="hljs-keyword">import</span> JuliaAction, JuliaEnv
<span class="hljs-keyword">try</span>:
<span class="hljs-comment"># Create environment from Docker image</span>
julia_env = JuliaEnv.from_docker_image(<span class="hljs-string">&quot;julia-env:latest&quot;</span>)
<span class="hljs-comment"># Reset</span>
result = julia_env.reset()
<span class="hljs-built_in">print</span>(<span class="hljs-string">f&quot;Reset complete: exit_code=<span class="hljs-subst">{result.observation.exit_code}</span>&quot;</span>)
<span class="hljs-comment"># Execute Julia code with tests</span>
action = JuliaAction(
core_code=<span class="hljs-string">&quot;&quot;&quot;
function multiply(a, b)
return a * b
end
&quot;&quot;&quot;</span>,
test_code=<span class="hljs-string">&quot;&quot;&quot;
using Test
@test multiply(3, 4) == 12
@test multiply(5, 6) == 30
&quot;&quot;&quot;</span>
)
result = julia_env.step(action)
<span class="hljs-built_in">print</span>(<span class="hljs-string">f&quot;Tests passed: <span class="hljs-subst">{result.observation.tests_passed}</span>&quot;</span>)
<span class="hljs-built_in">print</span>(<span class="hljs-string">f&quot;Tests failed: <span class="hljs-subst">{result.observation.tests_failed}</span>&quot;</span>)
<span class="hljs-built_in">print</span>(<span class="hljs-string">f&quot;Code compiles: <span class="hljs-subst">{result.observation.code_compiles}</span>&quot;</span>)
<span class="hljs-built_in">print</span>(<span class="hljs-string">f&quot;Reward: <span class="hljs-subst">{result.reward}</span>&quot;</span>)
<span class="hljs-keyword">finally</span>:
<span class="hljs-comment"># Always clean up</span>
julia_env.close()`,lang:"python",wrap:!1}}),b=new r({props:{title:"Building the Docker Image",local:"building-the-docker-image",headingTag:"h2"}}),v=new ue({props:{code:"JTIzJTIwRnJvbSUyMHRoZSUyMGp1bGlhX2VudiUyMGRpcmVjdG9yeSUwQWNkJTIwZW52cyUyRmp1bGlhX2VudiUwQWRvY2tlciUyMGJ1aWxkJTIwLXQlMjBqdWxpYS1lbnYlM0FsYXRlc3QlMjAtZiUyMHNlcnZlciUyRkRvY2tlcmZpbGUlMjAu",highlighted:`<span class="hljs-comment"># From the julia_env directory</span>
<span class="hljs-built_in">cd</span> envs/julia_env
docker build -t julia-env:latest -f server/Dockerfile .`,lang:"bash",wrap:!1}}),g=new r({props:{title:"Environment Details",local:"environment-details",headingTag:"h2"}}),B=new r({props:{title:"Action",local:"action",headingTag:"h3"}}),Z=new r({props:{title:"Observation",local:"observation",headingTag:"h3"}}),S=new r({props:{title:"State",local:"state",headingTag:"h3"}}),N=new r({props:{title:"Reward Calculation",local:"reward-calculation",headingTag:"h3"}}),R=new r({props:{title:"Features",local:"features",headingTag:"h2"}}),H=new r({props:{title:"Advanced Usage",local:"advanced-usage",headingTag:"h2"}}),Y=new r({props:{title:"Connecting to an Existing Server",local:"connecting-to-an-existing-server",headingTag:"h3"}}),q=new ue({props:{code:"ZnJvbSUyMGVudnMuanVsaWFfZW52JTIwaW1wb3J0JTIwSnVsaWFFbnYlMkMlMjBKdWxpYUFjdGlvbiUwQSUwQSUyMyUyMENvbm5lY3QlMjB0byUyMGV4aXN0aW5nJTIwc2VydmVyJTBBanVsaWFfZW52JTIwJTNEJTIwSnVsaWFFbnYoYmFzZV91cmwlM0QlMjJodHRwJTNBJTJGJTJGbG9jYWxob3N0JTNBODAwMCUyMiklMEElMEElMjMlMjBVc2UlMjBhcyUyMG5vcm1hbCUwQXJlc3VsdCUyMCUzRCUyMGp1bGlhX2Vudi5yZXNldCgpJTBBcmVzdWx0JTIwJTNEJTIwanVsaWFfZW52LnN0ZXAoSnVsaWFBY3Rpb24oJTBBJTIwJTIwJTIwJTIwY29yZV9jb2RlJTNEJTIycHJpbnRsbigyJTIwJTJCJTIwMiklMjIlMkMlMEElMjAlMjAlMjAlMjB0ZXN0X2NvZGUlM0QlMjIlMjIlMEEpKQ==",highlighted:`<span class="hljs-keyword">from</span> envs.julia_env <span class="hljs-keyword">import</span> JuliaEnv, JuliaAction
<span class="hljs-comment"># Connect to existing server</span>
julia_env = JuliaEnv(base_url=<span class="hljs-string">&quot;http://localhost:8000&quot;</span>)
<span class="hljs-comment"># Use as normal</span>
result = julia_env.reset()
result = julia_env.step(JuliaAction(
core_code=<span class="hljs-string">&quot;println(2 + 2)&quot;</span>,
test_code=<span class="hljs-string">&quot;&quot;</span>
))`,lang:"python",wrap:!1}}),X=new r({props:{title:"Custom Timeout",local:"custom-timeout",headingTag:"h3"}}),K=new ue({props:{code:"JTIzJTIwQ3VzdG9tJTIwdGltZW91dCUyMChpbiUyMHNlY29uZHMpJTBBanVsaWFfZW52JTIwJTNEJTIwSnVsaWFFbnYoYmFzZV91cmwlM0QlMjJodHRwJTNBJTJGJTJGbG9jYWxob3N0JTNBODAwMCUyMiUyQyUyMG1lc3NhZ2VfdGltZW91dF9zJTNEMzAwLjAp",highlighted:`<span class="hljs-comment"># Custom timeout (in seconds)</span>
julia_env = JuliaEnv(base_url=<span class="hljs-string">&quot;http://localhost:8000&quot;</span>, message_timeout_s=<span class="hljs-number">300.0</span>)`,lang:"python",wrap:!1}}),P=new r({props:{title:"Running with Docker Directly",local:"running-with-docker-directly",headingTag:"h3"}}),O=new ue({props:{code:"JTIzJTIwUnVuJTIwd2l0aCUyMGRlZmF1bHQlMjBzZXR0aW5ncyUyMChwb3J0JTIwODAwMCklMEFkb2NrZXIlMjBydW4lMjAtZCUyMC1wJTIwODAwMCUzQTgwMDAlMjAtLW5hbWUlMjBqdWxpYS1lbnYlMjBqdWxpYS1lbnYlM0FsYXRlc3QlMEElMEElMjMlMjBDaGVjayUyMGhlYWx0aCUwQWN1cmwlMjBodHRwJTNBJTJGJTJGbG9jYWxob3N0JTNBODAwMCUyRmhlYWx0aCUwQSUwQSUyMyUyMFZpZXclMjBsb2dzJTBBZG9ja2VyJTIwbG9ncyUyMC1mJTIwanVsaWEtZW52",highlighted:`<span class="hljs-comment"># Run with default settings (port 8000)</span>
docker run -d -p 8000:8000 --name julia-env julia-env:latest
<span class="hljs-comment"># Check health</span>
curl http://localhost:8000/health
<span class="hljs-comment"># View logs</span>
docker logs -f julia-env`,lang:"bash",wrap:!1}}),ee=new r({props:{title:"Example Code",local:"example-code",headingTag:"h2"}}),le=new ue({props:{code:"ZnJvbSUyMGVudnMuanVsaWFfZW52JTIwaW1wb3J0JTIwSnVsaWFBY3Rpb24lMkMlMjBKdWxpYUVudiUwQSUwQWp1bGlhX2VudiUyMCUzRCUyMEp1bGlhRW52LmZyb21fZG9ja2VyX2ltYWdlKCUyMmp1bGlhLWVudiUzQWxhdGVzdCUyMiklMEElMEF0cnklM0ElMEElMjAlMjAlMjAlMjAlMjMlMjBSZXNldCUyMHRoZSUyMGVudmlyb25tZW50JTBBJTIwJTIwJTIwJTIwanVsaWFfZW52LnJlc2V0KCklMEElMEElMjAlMjAlMjAlMjAlMjMlMjBTdGVwJTIwMSUzQSUyMERlZmluZSUyMGElMjBmdW5jdGlvbiUyMHdpdGglMjB0ZXN0cyUwQSUyMCUyMCUyMCUyMGFjdGlvbiUyMCUzRCUyMEp1bGlhQWN0aW9uKCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGNvcmVfY29kZSUzRCUyMiUyMiUyMiUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGZ1bmN0aW9uJTIwZmlib25hY2NpKG4pJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwaWYlMjBuJTIwJTNDJTNEJTIwMSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHJldHVybiUyMG4lMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBlbmQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjByZXR1cm4lMjBmaWJvbmFjY2kobi0xKSUyMCUyQiUyMGZpYm9uYWNjaShuLTIpJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwZW5kJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIyJTIyJTIyJTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwdGVzdF9jb2RlJTNEJTIyJTIyJTIyJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwdXNpbmclMjBUZXN0JTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTQwdGVzdCUyMGZpYm9uYWNjaSgwKSUyMCUzRCUzRCUyMDAlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlNDB0ZXN0JTIwZmlib25hY2NpKDEpJTIwJTNEJTNEJTIwMSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCU0MHRlc3QlMjBmaWJvbmFjY2koNSklMjAlM0QlM0QlMjA1JTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTQwdGVzdCUyMGZpYm9uYWNjaSgxMCklMjAlM0QlM0QlMjA1NSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMiUyMiUyMiUwQSUyMCUyMCUyMCUyMCklMEElMEElMjAlMjAlMjAlMjByZXN1bHQlMjAlM0QlMjBqdWxpYV9lbnYuc3RlcChhY3Rpb24pJTBBJTIwJTIwJTIwJTIwcHJpbnQoZiUyMlN0ZXAlMjAxJTIwLSUyMFRlc3RzJTIwcGFzc2VkJTNBJTIwJTdCcmVzdWx0Lm9ic2VydmF0aW9uLnRlc3RzX3Bhc3NlZCU3RCUyRjQlMjIpJTBBJTIwJTIwJTIwJTIwcHJpbnQoZiUyMlN0ZXAlMjAxJTIwLSUyMFJld2FyZCUzQSUyMCU3QnJlc3VsdC5yZXdhcmQlN0QlMjIpJTBBJTBBJTIwJTIwJTIwJTIwJTIzJTIwR2V0JTIwY3VycmVudCUyMHN0YXRlJTBBJTIwJTIwJTIwJTIwc3RhdGUlMjAlM0QlMjBqdWxpYV9lbnYuc3RhdGUoKSUwQSUyMCUyMCUyMCUyMHByaW50KGYlMjJUb3RhbCUyMHRlc3RzJTIwcGFzc2VkJTIwc28lMjBmYXIlM0ElMjAlN0JzdGF0ZS50b3RhbF90ZXN0c19wYXNzZWQlN0QlMjIpJTBBJTIwJTIwJTIwJTIwcHJpbnQoZiUyMlRvdGFsJTIwdGVzdHMlMjBmYWlsZWQlMjBzbyUyMGZhciUzQSUyMCU3QnN0YXRlLnRvdGFsX3Rlc3RzX2ZhaWxlZCU3RCUyMiklMEElMEFmaW5hbGx5JTNBJTBBJTIwJTIwJTIwJTIwanVsaWFfZW52LmNsb3NlKCk=",highlighted:`<span class="hljs-keyword">from</span> envs.julia_env <span class="hljs-keyword">import</span> JuliaAction, JuliaEnv
julia_env = JuliaEnv.from_docker_image(<span class="hljs-string">&quot;julia-env:latest&quot;</span>)
<span class="hljs-keyword">try</span>:
<span class="hljs-comment"># Reset the environment</span>
julia_env.reset()
<span class="hljs-comment"># Step 1: Define a function with tests</span>
action = JuliaAction(
core_code=<span class="hljs-string">&quot;&quot;&quot;
function fibonacci(n)
if n &lt;= 1
return n
end
return fibonacci(n-1) + fibonacci(n-2)
end
&quot;&quot;&quot;</span>,
test_code=<span class="hljs-string">&quot;&quot;&quot;
using Test
@test fibonacci(0) == 0
@test fibonacci(1) == 1
@test fibonacci(5) == 5
@test fibonacci(10) == 55
&quot;&quot;&quot;</span>
)
result = julia_env.step(action)
<span class="hljs-built_in">print</span>(<span class="hljs-string">f&quot;Step 1 - Tests passed: <span class="hljs-subst">{result.observation.tests_passed}</span>/4&quot;</span>)
<span class="hljs-built_in">print</span>(<span class="hljs-string">f&quot;Step 1 - Reward: <span class="hljs-subst">{result.reward}</span>&quot;</span>)
<span class="hljs-comment"># Get current state</span>
state = julia_env.state()
<span class="hljs-built_in">print</span>(<span class="hljs-string">f&quot;Total tests passed so far: <span class="hljs-subst">{state.total_tests_passed}</span>&quot;</span>)
<span class="hljs-built_in">print</span>(<span class="hljs-string">f&quot;Total tests failed so far: <span class="hljs-subst">{state.total_tests_failed}</span>&quot;</span>)
<span class="hljs-keyword">finally</span>:
julia_env.close()`,lang:"python",wrap:!1}}),se=new r({props:{title:"Compatibility",local:"compatibility",headingTag:"h2"}}),ae=new r({props:{title:"Development",local:"development",headingTag:"h2"}}),Me=new ue({props:{code:"JTIzJTIwSW5zdGFsbCUyMEp1bGlhJTIwMS4xMCUyQiUyMGZyb20lMjBodHRwcyUzQSUyRiUyRmp1bGlhbGFuZy5vcmclMkZkb3dubG9hZHMlMkYlMEElMEElMjMlMjBJbnN0YWxsJTIwUHl0aG9uJTIwZGVwZW5kZW5jaWVzJTBBY2QlMjBlbnZzJTJGanVsaWFfZW52JTBBcGlwJTIwaW5zdGFsbCUyMC1lJTIwLiUwQSUwQSUyMyUyMFJ1biUyMHRoZSUyMHNlcnZlciUyMGxvY2FsbHklMEF1dmljb3JuJTIwanVsaWFfZW52LnNlcnZlci5hcHAlM0FhcHAlMjAtLWhvc3QlMjAwLjAuMC4wJTIwLS1wb3J0JTIwODAwMA==",highlighted:`<span class="hljs-comment"># Install Julia 1.10+ from https://julialang.org/downloads/</span>
<span class="hljs-comment"># Install Python dependencies</span>
<span class="hljs-built_in">cd</span> envs/julia_env
pip install -e .
<span class="hljs-comment"># Run the server locally</span>
uvicorn julia_env.server.app:app --host 0.0.0.0 --port 8000`,lang:"bash",wrap:!1}}),pe=new r({props:{title:"License",local:"license",headingTag:"h2"}}),Te=new qt({props:{source:"https://github.com/huggingface/openenv/blob/main/docs/source/environments/julia.md"}}),{c(){m=a("meta"),re=n(),we=a("p"),me=n(),o(y.$$.fragment),ye=n(),o(d.$$.fragment),de=n(),U=a("p"),U.textContent=ct,Ue=n(),o(I.$$.fragment),Ie=n(),f=a("p"),f.innerHTML=rt,fe=n(),o(j.$$.fragment),je=n(),C=a("p"),C.innerHTML=mt,Ce=n(),h=a("ul"),h.innerHTML=yt,he=n(),o(b.$$.fragment),be=n(),$=a("p"),$.textContent=dt,$e=n(),o(v.$$.fragment),ve=n(),o(g.$$.fragment),ge=n(),o(B.$$.fragment),Be=n(),G=a("p"),G.innerHTML=Ut,Ge=n(),x=a("ul"),x.innerHTML=It,xe=n(),o(Z.$$.fragment),Ze=n(),W=a("p"),W.innerHTML=ft,We=n(),_=a("ul"),_.innerHTML=jt,_e=n(),o(S.$$.fragment),Se=n(),E=a("p"),E.innerHTML=Ct,Ee=n(),A=a("ul"),A.innerHTML=ht,Ae=n(),o(N.$$.fragment),Ne=n(),k=a("p"),k.textContent=bt,ke=n(),Q=a("ul"),Q.innerHTML=$t,Qe=n(),V=a("p"),V.innerHTML=vt,Ve=n(),o(R.$$.fragment),Re=n(),z=a("ul"),z.innerHTML=gt,ze=n(),o(H.$$.fragment),He=n(),o(Y.$$.fragment),Ye=n(),F=a("p"),F.textContent=Bt,Fe=n(),o(q.$$.fragment),qe=n(),L=a("p"),L.innerHTML=Gt,Le=n(),o(X.$$.fragment),Xe=n(),D=a("p"),D.textContent=xt,De=n(),o(K.$$.fragment),Ke=n(),o(P.$$.fragment),Pe=n(),o(O.$$.fragment),Oe=n(),o(ee.$$.fragment),et=n(),te=a("p"),te.textContent=Zt,tt=n(),o(le.$$.fragment),lt=n(),o(se.$$.fragment),st=n(),ne=a("p"),ne.textContent=Wt,nt=n(),ie=a("ul"),ie.innerHTML=_t,it=n(),o(ae.$$.fragment),at=n(),oe=a("p"),oe.textContent=St,ot=n(),o(Me.$$.fragment),Mt=n(),o(pe.$$.fragment),pt=n(),Je=a("p"),Je.textContent=Et,Jt=n(),o(Te.$$.fragment),Tt=n(),ce=a("p"),this.h()},l(e){const t=Ht("svelte-u9bgzb",document.head);m=M(t,"META",{name:!0,content:!0}),t.forEach(l),re=i(e),we=M(e,"P",{}),At(we).forEach(l),me=i(e),p(y.$$.fragment,e),ye=i(e),p(d.$$.fragment,e),de=i(e),U=M(e,"P",{"data-svelte-h":!0}),c(U)!=="svelte-w5bkx5"&&(U.textContent=ct),Ue=i(e),p(I.$$.fragment,e),Ie=i(e),f=M(e,"P",{"data-svelte-h":!0}),c(f)!=="svelte-iioc9j"&&(f.innerHTML=rt),fe=i(e),p(j.$$.fragment,e),je=i(e),C=M(e,"P",{"data-svelte-h":!0}),c(C)!=="svelte-16l9aiv"&&(C.innerHTML=mt),Ce=i(e),h=M(e,"UL",{"data-svelte-h":!0}),c(h)!=="svelte-18k8876"&&(h.innerHTML=yt),he=i(e),p(b.$$.fragment,e),be=i(e),$=M(e,"P",{"data-svelte-h":!0}),c($)!=="svelte-78ic0n"&&($.textContent=dt),$e=i(e),p(v.$$.fragment,e),ve=i(e),p(g.$$.fragment,e),ge=i(e),p(B.$$.fragment,e),Be=i(e),G=M(e,"P",{"data-svelte-h":!0}),c(G)!=="svelte-z4unur"&&(G.innerHTML=Ut),Ge=i(e),x=M(e,"UL",{"data-svelte-h":!0}),c(x)!=="svelte-3iok85"&&(x.innerHTML=It),xe=i(e),p(Z.$$.fragment,e),Ze=i(e),W=M(e,"P",{"data-svelte-h":!0}),c(W)!=="svelte-7zaxg2"&&(W.innerHTML=ft),We=i(e),_=M(e,"UL",{"data-svelte-h":!0}),c(_)!=="svelte-17a6tb1"&&(_.innerHTML=jt),_e=i(e),p(S.$$.fragment,e),Se=i(e),E=M(e,"P",{"data-svelte-h":!0}),c(E)!=="svelte-xolrcf"&&(E.innerHTML=Ct),Ee=i(e),A=M(e,"UL",{"data-svelte-h":!0}),c(A)!=="svelte-14yda89"&&(A.innerHTML=ht),Ae=i(e),p(N.$$.fragment,e),Ne=i(e),k=M(e,"P",{"data-svelte-h":!0}),c(k)!=="svelte-y02qc5"&&(k.textContent=bt),ke=i(e),Q=M(e,"UL",{"data-svelte-h":!0}),c(Q)!=="svelte-1fuzi5y"&&(Q.innerHTML=$t),Qe=i(e),V=M(e,"P",{"data-svelte-h":!0}),c(V)!=="svelte-dypamm"&&(V.innerHTML=vt),Ve=i(e),p(R.$$.fragment,e),Re=i(e),z=M(e,"UL",{"data-svelte-h":!0}),c(z)!=="svelte-ufxoq4"&&(z.innerHTML=gt),ze=i(e),p(H.$$.fragment,e),He=i(e),p(Y.$$.fragment,e),Ye=i(e),F=M(e,"P",{"data-svelte-h":!0}),c(F)!=="svelte-1x9tg7q"&&(F.textContent=Bt),Fe=i(e),p(q.$$.fragment,e),qe=i(e),L=M(e,"P",{"data-svelte-h":!0}),c(L)!=="svelte-1xlx3y8"&&(L.innerHTML=Gt),Le=i(e),p(X.$$.fragment,e),Xe=i(e),D=M(e,"P",{"data-svelte-h":!0}),c(D)!=="svelte-14ogh8o"&&(D.textContent=xt),De=i(e),p(K.$$.fragment,e),Ke=i(e),p(P.$$.fragment,e),Pe=i(e),p(O.$$.fragment,e),Oe=i(e),p(ee.$$.fragment,e),et=i(e),te=M(e,"P",{"data-svelte-h":!0}),c(te)!=="svelte-h1vdpz"&&(te.textContent=Zt),tt=i(e),p(le.$$.fragment,e),lt=i(e),p(se.$$.fragment,e),st=i(e),ne=M(e,"P",{"data-svelte-h":!0}),c(ne)!=="svelte-1yu14k3"&&(ne.textContent=Wt),nt=i(e),ie=M(e,"UL",{"data-svelte-h":!0}),c(ie)!=="svelte-xf9ksg"&&(ie.innerHTML=_t),it=i(e),p(ae.$$.fragment,e),at=i(e),oe=M(e,"P",{"data-svelte-h":!0}),c(oe)!=="svelte-ns30bz"&&(oe.textContent=St),ot=i(e),p(Me.$$.fragment,e),Mt=i(e),p(pe.$$.fragment,e),pt=i(e),Je=M(e,"P",{"data-svelte-h":!0}),c(Je)!=="svelte-jpg2o6"&&(Je.textContent=Et),Jt=i(e),p(Te.$$.fragment,e),Tt=i(e),ce=M(e,"P",{}),At(ce).forEach(l),this.h()},h(){Nt(m,"name","hf:doc:metadata"),Nt(m,"content",Xt)},m(e,t){Yt(document.head,m),s(e,re,t),s(e,we,t),s(e,me,t),J(y,e,t),s(e,ye,t),J(d,e,t),s(e,de,t),s(e,U,t),s(e,Ue,t),J(I,e,t),s(e,Ie,t),s(e,f,t),s(e,fe,t),J(j,e,t),s(e,je,t),s(e,C,t),s(e,Ce,t),s(e,h,t),s(e,he,t),J(b,e,t),s(e,be,t),s(e,$,t),s(e,$e,t),J(v,e,t),s(e,ve,t),J(g,e,t),s(e,ge,t),J(B,e,t),s(e,Be,t),s(e,G,t),s(e,Ge,t),s(e,x,t),s(e,xe,t),J(Z,e,t),s(e,Ze,t),s(e,W,t),s(e,We,t),s(e,_,t),s(e,_e,t),J(S,e,t),s(e,Se,t),s(e,E,t),s(e,Ee,t),s(e,A,t),s(e,Ae,t),J(N,e,t),s(e,Ne,t),s(e,k,t),s(e,ke,t),s(e,Q,t),s(e,Qe,t),s(e,V,t),s(e,Ve,t),J(R,e,t),s(e,Re,t),s(e,z,t),s(e,ze,t),J(H,e,t),s(e,He,t),J(Y,e,t),s(e,Ye,t),s(e,F,t),s(e,Fe,t),J(q,e,t),s(e,qe,t),s(e,L,t),s(e,Le,t),J(X,e,t),s(e,Xe,t),s(e,D,t),s(e,De,t),J(K,e,t),s(e,Ke,t),J(P,e,t),s(e,Pe,t),J(O,e,t),s(e,Oe,t),J(ee,e,t),s(e,et,t),s(e,te,t),s(e,tt,t),J(le,e,t),s(e,lt,t),J(se,e,t),s(e,st,t),s(e,ne,t),s(e,nt,t),s(e,ie,t),s(e,it,t),J(ae,e,t),s(e,at,t),s(e,oe,t),s(e,ot,t),J(Me,e,t),s(e,Mt,t),J(pe,e,t),s(e,pt,t),s(e,Je,t),s(e,Jt,t),J(Te,e,t),s(e,Tt,t),s(e,ce,t),ut=!0},p:Qt,i(e){ut||(T(y.$$.fragment,e),T(d.$$.fragment,e),T(I.$$.fragment,e),T(j.$$.fragment,e),T(b.$$.fragment,e),T(v.$$.fragment,e),T(g.$$.fragment,e),T(B.$$.fragment,e),T(Z.$$.fragment,e),T(S.$$.fragment,e),T(N.$$.fragment,e),T(R.$$.fragment,e),T(H.$$.fragment,e),T(Y.$$.fragment,e),T(q.$$.fragment,e),T(X.$$.fragment,e),T(K.$$.fragment,e),T(P.$$.fragment,e),T(O.$$.fragment,e),T(ee.$$.fragment,e),T(le.$$.fragment,e),T(se.$$.fragment,e),T(ae.$$.fragment,e),T(Me.$$.fragment,e),T(pe.$$.fragment,e),T(Te.$$.fragment,e),ut=!0)},o(e){u(y.$$.fragment,e),u(d.$$.fragment,e),u(I.$$.fragment,e),u(j.$$.fragment,e),u(b.$$.fragment,e),u(v.$$.fragment,e),u(g.$$.fragment,e),u(B.$$.fragment,e),u(Z.$$.fragment,e),u(S.$$.fragment,e),u(N.$$.fragment,e),u(R.$$.fragment,e),u(H.$$.fragment,e),u(Y.$$.fragment,e),u(q.$$.fragment,e),u(X.$$.fragment,e),u(K.$$.fragment,e),u(P.$$.fragment,e),u(O.$$.fragment,e),u(ee.$$.fragment,e),u(le.$$.fragment,e),u(se.$$.fragment,e),u(ae.$$.fragment,e),u(Me.$$.fragment,e),u(pe.$$.fragment,e),u(Te.$$.fragment,e),ut=!1},d(e){e&&(l(re),l(we),l(me),l(ye),l(de),l(U),l(Ue),l(Ie),l(f),l(fe),l(je),l(C),l(Ce),l(h),l(he),l(be),l($),l($e),l(ve),l(ge),l(Be),l(G),l(Ge),l(x),l(xe),l(Ze),l(W),l(We),l(_),l(_e),l(Se),l(E),l(Ee),l(A),l(Ae),l(Ne),l(k),l(ke),l(Q),l(Qe),l(V),l(Ve),l(Re),l(z),l(ze),l(He),l(Ye),l(F),l(Fe),l(qe),l(L),l(Le),l(Xe),l(D),l(De),l(Ke),l(Pe),l(Oe),l(et),l(te),l(tt),l(lt),l(st),l(ne),l(nt),l(ie),l(it),l(at),l(oe),l(ot),l(Mt),l(pt),l(Je),l(Jt),l(Tt),l(ce)),l(m),w(y,e),w(d,e),w(I,e),w(j,e),w(b,e),w(v,e),w(g,e),w(B,e),w(Z,e),w(S,e),w(N,e),w(R,e),w(H,e),w(Y,e),w(q,e),w(X,e),w(K,e),w(P,e),w(O,e),w(ee,e),w(le,e),w(se,e),w(ae,e),w(Me,e),w(pe,e),w(Te,e)}}}const Xt='{"title":"Julia Environment","local":"julia-environment","sections":[{"title":"Quick Start","local":"quick-start","sections":[],"depth":2},{"title":"Building the Docker Image","local":"building-the-docker-image","sections":[],"depth":2},{"title":"Environment Details","local":"environment-details","sections":[{"title":"Action","local":"action","sections":[],"depth":3},{"title":"Observation","local":"observation","sections":[],"depth":3},{"title":"State","local":"state","sections":[],"depth":3},{"title":"Reward Calculation","local":"reward-calculation","sections":[],"depth":3}],"depth":2},{"title":"Features","local":"features","sections":[],"depth":2},{"title":"Advanced Usage","local":"advanced-usage","sections":[{"title":"Connecting to an Existing Server","local":"connecting-to-an-existing-server","sections":[],"depth":3},{"title":"Custom Timeout","local":"custom-timeout","sections":[],"depth":3},{"title":"Running with Docker Directly","local":"running-with-docker-directly","sections":[],"depth":3}],"depth":2},{"title":"Example Code","local":"example-code","sections":[],"depth":2},{"title":"Compatibility","local":"compatibility","sections":[],"depth":2},{"title":"Development","local":"development","sections":[],"depth":2},{"title":"License","local":"license","sections":[],"depth":2}],"depth":1}';function Dt(wt){return Vt(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class tl extends Rt{constructor(m){super(),zt(this,m,Dt,Lt,kt,{})}}export{tl as component};

Xet Storage Details

Size:
26.1 kB
·
Xet hash:
e6514ec6f612d012a313a0053f7c3348cdd306e4c18b2404db503c671f851c17

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.