Skip to content

Commit 7176907

Browse files
committed
add example for libraries
1 parent 348a1e3 commit 7176907

File tree

3 files changed

+124
-0
lines changed

3 files changed

+124
-0
lines changed

examples/async_libraries.py

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
#!/usr/bin/env python
2+
3+
import os
4+
import asyncio
5+
6+
from mistralai import Mistral
7+
from mistralai.models import File
8+
9+
10+
async def main():
11+
api_key = os.environ["MISTRAL_API_KEY"]
12+
13+
client = Mistral(api_key=api_key)
14+
15+
# create new library
16+
library = await client.beta.libraries.create_async(name="My API Library")
17+
print(library)
18+
19+
# Upload a new file
20+
uploaded_file = await client.beta.libraries.documents.upload_async(
21+
library_id=library.id,
22+
file=File(
23+
file_name="lorem_ipsum.md",
24+
content=open("examples/fixtures/lorem_ipsum.md", "rb").read(),
25+
)
26+
)
27+
print(uploaded_file)
28+
29+
# List files
30+
files = (await client.beta.libraries.documents.list_async(library_id=library.id)).data
31+
print(files)
32+
33+
# Retrieve a file
34+
retrieved_file = await client.beta.libraries.documents.get_async(library_id=library.id, document_id=uploaded_file.id)
35+
print(retrieved_file)
36+
37+
# Retrieve a file content
38+
retrieved_file_content = await client.beta.libraries.documents.text_content_async(library_id=library.id, document_id=uploaded_file.id)
39+
print(retrieved_file_content)
40+
41+
42+
# Rename a file
43+
renamed_file = await client.beta.libraries.documents.update_async(library_id=library.id, document_id=uploaded_file.id, name="renamed_file.md")
44+
print(renamed_file)
45+
46+
# Delete a file
47+
deleted_file = await client.beta.libraries.documents.delete_async(library_id=library.id, document_id=uploaded_file.id)
48+
print(deleted_file)
49+
50+
# Delete a library
51+
deleted_library = await client.beta.libraries.delete_async(library_id=library.id)
52+
print(deleted_library)
53+
54+
55+
56+
if __name__ == "__main__":
57+
asyncio.run(main())

examples/fixtures/lorem_ipsum.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# Lorem ipsum
2+
3+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce interdum mi velit, ac tincidunt erat ullamcorper in. Cras imperdiet orci sit amet tincidunt feugiat. Vivamus imperdiet purus a elit varius interdum ultrices ac dui. Curabitur et bibendum ex. Maecenas diam nulla, tempus ultrices tincidunt non, blandit a neque. Vivamus consequat metus aliquet finibus pretium. Phasellus arcu magna, lacinia eget hendrerit eget, hendrerit vitae ipsum.
4+
5+
Ut sodales enim purus, quis laoreet libero fermentum et. Sed id massa id turpis porttitor tristique. Cras sed eleifend ante. In hac habitasse platea dictumst. Mauris rutrum sodales varius. Vestibulum imperdiet urna ac aliquet auctor. Nulla ultrices nulla mauris, sed sodales lacus vestibulum sit amet. Phasellus mollis erat quis neque hendrerit accumsan. Curabitur imperdiet sapien diam, sit amet finibus turpis placerat at. Proin in euismod lorem, eget bibendum quam.
6+
7+
Aenean sit amet elit ornare, laoreet elit eget, aliquet nunc. Integer quis fermentum metus. Donec venenatis eget quam gravida mollis. Sed a suscipit libero, eget aliquet nibh. Maecenas tempus est nisl, vel viverra metus pharetra faucibus. Cras sodales dignissim mi quis pellentesque. In non hendrerit enim. Aliquam pretium turpis nec tortor imperdiet, id cursus enim auctor. Praesent aliquam mollis quam, nec luctus orci finibus quis. Vivamus in nibh faucibus, efficitur libero ut, feugiat elit. Quisque volutpat velit at porttitor feugiat. Vivamus porta sapien eros, non ultricies arcu suscipit ac. Etiam elit lorem, condimentum convallis semper at, congue eu quam. In ultrices sed nunc ac rhoncus. Aenean ultrices lobortis ex, at malesuada libero.
8+
9+
Etiam accumsan quam sit amet interdum bibendum. Pellentesque rutrum tellus vel nibh dapibus mollis. Vestibulum a dolor semper, semper turpis varius, lacinia tellus. Pellentesque placerat neque vitae elit porttitor tincidunt. Donec id pulvinar felis, eu aliquam ipsum. Praesent a sapien et justo gravida condimentum. Vivamus vitae posuere nisi, quis faucibus justo. Pellentesque eget metus mauris. Quisque in lobortis nisi. Suspendisse nec risus sagittis, tristique nulla sed, faucibus massa. Cras ullamcorper turpis nec sagittis mollis. Pellentesque mattis consectetur enim, at molestie justo molestie sit amet.
10+
11+
In hac habitasse platea dictumst. Aenean sed turpis tellus. Proin tristique dignissim neque, quis interdum mauris aliquam non. Aenean vitae enim eu nulla consectetur vestibulum. Aliquam lacus massa, venenatis a consectetur nec, vulputate vitae urna. In ultricies pulvinar leo, vel tempus ante scelerisque a. Vivamus dictum sodales orci. Aliquam quis neque leo. Donec eu mauris accumsan, pretium magna quis, feugiat purus. Phasellus malesuada purus nunc, condimentum mollis ipsum sollicitudin vitae. Nam tempus sapien non nulla varius viverra. Cras vel felis volutpat, bibendum neque a, porttitor mauris. Ut eu dapibus justo.

examples/libraries.py

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
#!/usr/bin/env python
2+
3+
import os
4+
5+
from mistralai import Mistral
6+
from mistralai.models import File
7+
8+
9+
def main():
10+
api_key = os.environ["MISTRAL_API_KEY"]
11+
12+
client = Mistral(api_key=api_key)
13+
14+
# create new library
15+
library = client.beta.libraries.create(name="My API Library")
16+
print(library)
17+
18+
# Upload a new file
19+
uploaded_file = client.beta.libraries.documents.upload(
20+
library_id=library.id,
21+
file=File(
22+
file_name="lorem_ipsum.md",
23+
content=open("examples/fixtures/lorem_ipsum.md", "rb").read(),
24+
)
25+
)
26+
print(uploaded_file)
27+
28+
# List files
29+
files = client.beta.libraries.documents.list(library_id=library.id).data
30+
print(files)
31+
32+
# Retrieve a file
33+
retrieved_file = client.beta.libraries.documents.get(library_id=library.id, document_id=uploaded_file.id)
34+
print(retrieved_file)
35+
36+
# Retrieve a file content
37+
retrieved_file_content = client.beta.libraries.documents.text_content(library_id=library.id, document_id=uploaded_file.id)
38+
print(retrieved_file_content)
39+
40+
41+
# Rename a file
42+
renamed_file = client.beta.libraries.documents.update(library_id=library.id, document_id=uploaded_file.id, name="renamed_file.md")
43+
print(renamed_file)
44+
45+
# Delete a file
46+
deleted_file = client.beta.libraries.documents.delete(library_id=library.id, document_id=uploaded_file.id)
47+
print(deleted_file)
48+
49+
# Delete a library
50+
deleted_library = client.beta.libraries.delete(library_id=library.id)
51+
print(deleted_library)
52+
53+
54+
55+
if __name__ == "__main__":
56+
main()

0 commit comments

Comments
 (0)